为什么在(vb或C#)中没有'new'关键字声明(实例化)值类型.net
答案 0 :(得分:0)
不必使用new
关键字构造值类型,但在原语类型的语言中支持,如整数,字符串等。
换句话说,你通常写这个:
int i = 10;
string s = "test";
但是,如果您定义自己的值类型,要使用初始值声明变量,则需要使用new
:
Point p = new Point(10, 20);
我认为你需要澄清你在问什么。
答案 1 :(得分:0)
基本上任何原始CLR类型(Object除外)都不需要new
。
有很多方法可以将这个应用于任何(blittable)值类型,通过不安全,非常类似于C在嵌入式世界中如何完成。
更新
你改变了你的问题。看来你被误导了。除非你在讨论在类初始化时发生的默认值,否则它仍在使用new
。
示例:
class Foo
{
Point foo;
}
执行new Foo()
时,foo
的值会初始化为默认值,这意味着new Point()
。
以上代码实际上是:
class Foo
{
Point foo;
Foo()
{
foo = default(Point); // which is new Point()
}
}