每个对象只调用一次结构构造函数

本文关键字:一次 结构 构造函数 对象 调用 | 更新日期: 2023-09-27 18:02:32

结构中是否可以有一个构造函数,每个对象只调用一次?例如,我希望代码的行为与此类似:

struct mystruct { /*...*/ }
//later on
mystruct x = 5; //constructor called once, okay
x = 6; //constructor called twice for this object, exception thrown
mystruct y = 6; //different object, this is okay
mystruct z;
z = 7; //this is also okay since the definition didn't call the constructor

这在C#中可能吗?如果没有,有没有办法模仿这种行为?

我试着保留一个this的静态字典,并测试是否存在新的this,但没有成功。测试this时,ObjectIDGenerator也不会。

每个对象只调用一次结构构造函数

否。您所要求的是一个静态构造函数。从本质上讲,它必须是无参数的。哪个结构构造函数不能是。

msdnhttps://msdn.microsoft.com/en-us/library/aa288208(v=vs.71(.aspx