用于创建对象和调用构造函数。例如:

 CopyCode image复制代码
Class1 o  = new Class1();

new 运算符还用于调用值类型的默认构造函数。例如:

 CopyCode image复制代码
int i = new int();

在上一个语句中,i 初始化为 0,它是 int 类型的默认值。该语句的效果等同于:

 CopyCode image复制代码
int i = 0;

有关默认值的完整列表,请参见默认值表

请记住,为结构声明默认的构造函数是错误的,因为每一个值类型都隐式具有一个公共的默认构造函数。可以在结构类型上声明参数化构造函数以设置其初始值,但是,只有在需要默认值之外的值时才必须这样做。

值类型对象(例如结构)是在堆栈上创建的,而引用类型对象(例如类)是在堆上创建的。两种类型的对象都是自动销毁的,但是,基于值类型的对象是在超出范围时销毁,而基于引用类型的对象则是在对该对象的最后一个引用被移除之后在某个不确定的时间销毁。对于占用固定资源(例如大量内存、文件句柄或网络连接)的引用类型,有时需要使用确定性终止以确保对象被尽快销毁。有关更多信息,请参见 using 语句(C# 参考)

不能重载 new 运算符。

如果 new 运算符分配内存失败,将引发异常 OutOfMemoryException

Expand 图像示例

Expand 图像输出

Expand 图像C# 语言规范

Expand image请参见