如何在C#程序中添加自己的数据类型?

cha*_*987 9 c# types

类似"int"表示"Int32"类,"string"表示"String"类.如何将像"abc"这样的数据类型引用到我的"Abc"类?

Phi*_*ith 17

您的"类"是一种数据类型.

您提供的示例是CLR数据类型名称和C#数据类型名称之间的区别.它们是别名.C#int映射到CLR Int32和C#字符串映射到CLR String.

您可以使用"使用Xyx = Abc"创建自己的别名.您必须在每个源文件中执行此操作,因此它没有那么有用.

  • 不正确.所有类都是数据类型.VS突出显示深蓝色的C#保留字和淡蓝色的所有其他数据类型.深蓝色突出显示与类和类型之间的差异无关. (4认同)

Mit*_*eat 10

您可以添加如下别名:

using abc = MyNamespace.Abc;
Run Code Online (Sandbox Code Playgroud)

但我会质疑你为什么要这样做.

[另一张海报指出了一个有效的用途,即命名空间类型冲突,但是我总是使用完全限定的类型名称,否则它可能会变得非常混乱.]


fle*_*her 5

using abc = MyNamespace.Abc;
Run Code Online (Sandbox Code Playgroud)

我不确定这有什么优点,如果你找到同名的不同类型,通常会使用它.


Wil*_*den 5

你完全误解了"数据类型"是什么.在C#,关键词等int,string,等被简单地别名为相应的类型(如类/结构实现的)已经存在于CLR.例如,int具有System.Int32与.NET框架的核心定义的结构完全相同的含义.同样,string只是意味着System.String,这是一个阶级.

在.NET中,每个 "数据类型"最终都继承自System.Object(object在C#中有别名).您引用的数据类型只是预先实现的类和继承的结构System.Object; 他们没什么特别的.您应该意识到C#没有与其他语言相同的特殊原始类型:它们都只是公共类型层次结构的一部分.您习惯使用的关键字仅为方便起见而提供.

从本质上讲,不要担心.您的类可以按原样使用,这就是它们应该如何使用.

一些阅读: