繁体   English   中英

C#结构部分初始化

[英]C# struct partially initialization

我有一个参数结构:

public struct MyParams
{
   public int    Param1;
   public int    Param2;
   public string Param3;
   public string Param4;
}

这是跨应用程序使用的通用结构。 在某些情况下,我只需要初始化一个成员,就不使用所有其他成员。 我可以这样初始化struct:

MyParams testParams = default(MyParams);
testParams.Param2 = 3;
FunctionX(testParams);

另外,我可以在函数调用中直接初始化struct,但是在这种情况下,我必须为所有成员指定值:

FunctionX(new MyParams{Param1=0,Param2=3,Param3=string.Empty,Param4=string.Empty});

我的问题是我可以在函数调用行中初始化结构并仅指定一个足以容纳我的成员,而另一个成员将采用默认值

提前致谢!

11.3.4默认值

我引用:

但是,由于结构是不能为null的值类型,因此结构的默认值是通过将所有值类型字段设置为默认值而将所有引用类型字段设置为null所产生的值。

初始化struct ,所有成员将被初始化为其默认值:

MyParams p = new MyParams() { Param3 = "Test" };

这将使您拥有:

参数1 == 0;
参数2 == 0;
Param3 ==“测试”;
Param4 == null;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM