内置数据类型与用户定义的数据类型之间的主要区别在于:内置数据类型可以接受文字值(直接插入代码中的值,此过程也称为硬编码)。

因此,可以创建与布尔值相同的自定义数据类型,该类型接受三个值:
是/否/也许不使用枚举。

如以下代码:

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();

10-02 04:15
查看更多