覆盖默认的结构(C#) [英] Overriding the Defaults in a struct (c#)
问题描述
是否可以设置或覆盖默认状态的结构?
作为一个例子,我有一个
枚举的东西{A,b,C,D,E};
和对于该枚举
$ B $连接2个值的结构b
结构SomethingData
{
类的东西;
int值;
双乘数;
SomethingData(东西enumVal,诠释INTVAL,双DblVal){...}
}
不过,我可以指定默认状态是
SomethingData(something.c,0,1 );
结构体构造相似至
类的构造函数,除了
以下区别:
结构可以不包含明确的
参数构造函数。结构
成员被自动初始化
为默认值。一个结构
不能在
形式的初始化:基地(参数列表)
块引用>
<一个HREF =http://msdn.microsoft.com/en-us/library/aa288208(v=vs.71).aspx> http://msdn.microsoft.com/en-us/library/aa288208(五= vs.71)的.aspx
所以,简单的答案,没有你不能覆盖默认的构造函数(每结构有一个参数的构造函数,你可以'T隐藏或覆盖它)...
Is it possible to set or override the default state for a structure?
As an example I have an
enum something{a,b,c,d,e};
and a structure that links 2 values for that enum
struct SomethingData { something type; int Value; double Multipler; SomethingData(something enumVal, int intVal, double DblVal) {...} }
But can I specify that the default state is
SomethingData(something.c,0,1);
解决方案Struct constructors are similar to class constructors, except for the following differences:
Structs cannot contain explicit parameterless constructors. Struct members are automatically initialized to their default values. A struct cannot have an initializer in the form: base (argument-list).
http://msdn.microsoft.com/en-us/library/aa288208(v=vs.71).aspx
So, short answer, no you can't override the default constructor (every struct has a parameterless constructor and you can't hide it or override it)...
这篇关于覆盖默认的结构(C#)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!