C#中,结构体是按值来管理的,而对象则是按引用管理的。据我理解,当创建类的一个实例时,关键字new
会让C#使用类信息来创建该实例,就像下面这样:
class MyClass
{
...
}
MyClass mc = new MyClass();
对于结构体,你不是在创建一个对象,而只是将一个变量设置为一个值:
struct MyStruct
{
public string name;
}
MyStruct ms;
//MyStruct ms = new MyStruct();
ms.name = "donkey";
我不理解的是如果通过MyStruct ms = new MyStruct()
声明变量,这里的关键字new
在语句中的作用是什么?如果结构体不能成为一个对象,那这里的new
实例化了什么?
struct
的实例 是 一个对象。你可能误解的区别在于值类型和引用类型之间的区别。 - Ed S.