相关疑难解决方法(0)

使用隐式/显式转换而不是构造函数的原因是什么?

一个例子是:

XNamespace ns = "my namespace"
Run Code Online (Sandbox Code Playgroud)

为什么不?:

XNamespace ns = new XNamespace ( "my namespace" )
Run Code Online (Sandbox Code Playgroud)

使用隐式/显式转换而不是构造函数背后的想法是什么?方便?

有这方面的指导方针吗?

.net c# constructor type-conversion base-class-library

7
推荐指数
2
解决办法
2123
查看次数

ldstr在内部实现newobj吗?

众所周知,字符串是隐式实例化的,这意味着我们不必使用new它来获取对象的对象的引用.

因此,我一直认为框架正在处理这个问题,因此如果我这样做,我会得到相同的IL:

String first = new String(new char[] {'a'});
string second = "a";
Run Code Online (Sandbox Code Playgroud)

然而,似乎第一行是使用newobj instance void [mscorlib]System.String::.ctor(char[]) 和第二行完成的ldstr "a".

那么为了获得一个字符串引用,ldstr内部调用newobj,我在哪里可以看到规范/细节来支持它?

.net c# il jit cil

6
推荐指数
1
解决办法
818
查看次数

标签 统计

.net ×2

c# ×2

base-class-library ×1

cil ×1

constructor ×1

il ×1

jit ×1

type-conversion ×1