为struct value-type赋值

时间:2010-12-19 21:27:08

标签: c#

我希望能够创建一个结构,并像普通内置一样使用它。 例如,假设我决定Bool也应该有一个FileNotFound值(作为一个愚蠢的例子!),所以我创建一个结构来包含它 - 如何能够将它用作代码中的普通结构(即分配给它),如同   bool b = true;要么   b = FileNotFound;

Bool是一个结构,对吧?你可以用其他内置插件来做到这一点: int i = 32;要么 字节b = 123;

我想做自己的! 有人有任何想法......?

干杯 - 理查德

2 个答案:

答案 0 :(得分:3)

您想要的是enumsee here

enum是可以用作类型的值集。

所以你可以这样做:

enum MyBool {True=1, False, FileNotFound};
MyBool b = MyBool.FileNotFound;

如果您需要方法,请使用structenumsee 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#中做这类事情。