![]() |
1
24
C#编译器将尝试在编译时获取所有常量字符串。这就是所谓的
字符串驻留
因此,在生成代码之后
您可以通过比较它们的引用(将它们转换为对象并执行相等性检查或使用
另一件事是 strings are immutable 在.NET中。
那么为什么是
因此,在你的问题中,向对象转换的整个要点是检查字符串实例化是否有效。 假设编译时没有实训 .
|
![]() |
2
6
所提供答案的补充: string (C# Reference)
例子:
结果:
解释 : 这将创建一个新对象:
这将创建另一个对象:
这将创建另一个对象:
下面将创建对现有对象的引用,更准确地说,它将指向变量“a”指向的同一对象→ “你好”。
|
![]() |
3
5
C#使用
强制转换的目的是
|
![]() |
4
1
带代码的注释 因此,如果在运行时将值xx全部设置为相同的值xx,那么您将得到不同的false结果,因为编译器没有机会在运行时进行优化,即使这两种情况下的代码和输入值都相同,但预编译与运行时的结果不同。
|
![]() |
illusionist · 覆盖==等式运算符仅在一个方向上起作用 7 年前 |
![]() |
babybob · 转换为“对象”类型的目的是什么? 8 年前 |
![]() |
Kevin Meredith · 定义自由Monad的相等实例 9 年前 |
![]() |
Mansour · Java检查字符串的相等性 9 年前 |