c#结构体初始化
发布网友
发布时间:2024-01-18 12:21
我来回答
共2个回答
热心网友
时间:2024-03-03 05:02
Point pt = new Point();
这种是调用默认构造器,每个字段赋为二进制0值。
Point pt = new Point{ x = 0, y = 0 };
这种类似于cpp的括号初始化,需要给每个用到的字段设public。效果等价于分别赋值
由于结构体不允许自定义默认构造器,你可以定义带参构造器。也是一种方法。
另外结构体存在于栈上,而c#不会给栈上变量赋默认值,并且要求必须先赋值后使用。所以定义之后记得给所有字段都赋值一下。如果自定义构造器,别忘了构造器里面也要这样做。
热心网友
时间:2024-03-03 05:03
public struct InPut
{
public string _ref1;
public string _ref2;
public string _mask1;
public string _mask2;
public string _mask3;
public string _mapping;
public string _result;
public int _pos;
public int _gop;
};
InPut T=new InPut();
结构体里面的变量和函数要申明为public不然在外面调用不到