内置数据类型与用户定义的数据类型之间的主要区别在于:内置数据类型可以接受文字值(直接插入代码中的值,此过程也称为硬编码)。
因此,可以创建与布尔值相同的自定义数据类型,该类型接受三个值:
是/否/也许不使用枚举。
如以下代码:
MyCustomBoolean a = maybe;
我问了以上问题,是因为我想了解C#中的内置数据类型是用Core Language(例如C ++ int,char ...)指示的还是否?
-更新-
对于第二个问题,让我问一个问题,以使第二个问题更明确:
我知道例如string是System.String的别名,但是C#中的纯字符串在没有System.String的情况下可以工作吗?
最佳答案
无法完全按照您的要求执行此操作。但是,您可以在C#中创建constant fields来完成此结果(命名值),但只能使用integral types或字符串-换句话说,您已经可以在编译时常量中使用的东西。这对于否则Magic Values可能特别有用。
public const string Maybe = "Maybe";
public const int Maybe = 0;
解决此问题的一种方法(尽管它不能用作真正的常量)是初始化静态readonly字段或属性。例如
public static readonly MyCustomBoolean Maybe { get { return new MycustomBoolean(); } }
public static MyCustomBoolean Maybe = new MyCustomBoolean();