覆盖默认的结构(C#) [英] Overriding the Defaults in a struct (c#)

查看:83
本文介绍了覆盖默认的结构(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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆