我希望能够创建一个结构,并像普通内置一样使用它。 例如,假设我决定Bool也应该有一个FileNotFound值(作为一个愚蠢的例子!),所以我创建一个结构来包含它 - 如何能够将它用作代码中的普通结构(即分配给它),如同 bool b = true;要么 b = FileNotFound;
Bool是一个结构,对吧?你可以用其他内置插件来做到这一点: int i = 32;要么 字节b = 123;
我想做自己的! 有人有任何想法......?
干杯 - 理查德
答案 0 :(得分:3)
您想要的是enum
:see here。
enum
是可以用作类型的值集。
所以你可以这样做:
enum MyBool {True=1, False, FileNotFound};
MyBool b = MyBool.FileNotFound;
如果您需要方法,请使用struct
和enum
:see here
public struct MyBool
{
internal enum Values {True=1, False, FileNotFound};
Values value;
public MyBool(Values v)
{
value = v;
}
}
MyBool b = new MyBool(MyBool.Values.FileNotFound);
Values
的{{1}}只有在声明新实例时才会可用(或者如果您使用任何其他方法使用它)。
您可能希望将结构中的struct
变量初始化为某些内容,因为value
的构造函数仍然可以在没有值的情况下调用。
答案 1 :(得分:0)
一般来说,你不能在C#中做这类事情。