C# 是否可以强制运算符**默认值(MyStructType)**使用预定义值初始化结构
我有一个结构类型:C# 是否可以强制运算符**默认值(MyStructType)**使用预定义值初始化结构,c#,default,default-value,C#,Default,Default Value,我有一个结构类型: struct test1 { public int a; public int b; public double c; public string d; } 下一行给出了“clear”结构对象,其中的字段已用默认值初始化: test1 tt = default(test1); // tt.a will be equal 0 但是现在,我想让opportunity为struct类型中的某些字段预定义默认值。例如,我希望字段a具有25作
struct test1
{
public int a;
public int b;
public double c;
public string d;
}
下一行给出了“clear”结构对象,其中的字段已用默认值初始化:
test1 tt = default(test1);
// tt.a will be equal 0
但是现在,我想让opportunity为struct类型中的某些字段预定义默认值。例如,我希望字段a具有25作为默认值
是否可以强制默认值运算符使用预定义的默认值初始化我的结构?不,这是不可能的
不同类型已具有明确的默认值:
- 引用类型的
null
- 0或0.0表示整数和浮点类型
DateTime
只是对其内部字段(从epoch开始0*100纳秒)的上述解释
您不能覆盖或更改默认运算符的工作方式。您的字段将被初始化为其类型的默认值,但您可以使用属性使其行为与设置默认值一样
struct test1
{
private int? a;
public int A
{
get { return a ?? 25; }
set { a = value; }
}
}
在这个代码段中,我们使用了一个可为null的int,但公开了一个int。如果backing字段的值为null,我们知道我们正在处理一个新的/默认的实例,需要提供默认值
struct test1
{
private int? a;
public int A
{
get { return a ?? 25; }
set { a = value; }
}
}