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

时间:2010-07-19 10:53:54

标签: c# types

like“int”表示“Int32”类,“string”表示“String”类。如何将像“abc”这样的数据类型引用到我的“Abc”类?

7 个答案:

答案 0 :(得分:17)

您的“课程”是一种数据类型。

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

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

答案 1 :(得分:10)

您可以添加如下别名:

using abc = MyNamespace.Abc;

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

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

答案 2 :(得分:5)

using abc = MyNamespace.Abc;

我不确定这会带来什么好处,如果你找到同名的不同类型,通常会使用它。

答案 3 :(得分:5)

你完全误解了“数据类型”是什么。在C#中,intstring,等关键字只是CLR中已存在的相应类型(实现为类/结构)的别名。例如,intSystem.Int32具有完全相同的含义,string是由.NET框架的核心定义的结构。同样,System.String仅表示System.Object,这是一个类。

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

实质上,不要担心。您的类可以按原样使用,这就是它们应该被使用的方式。

一些阅读:

答案 4 :(得分:2)

类似int等的类型是在类型/保留关键字中构建的。这些是由编译器定义的,因此无法添加自己的。

答案 5 :(得分:0)

您正在寻找的功能可能是您习惯使用C ++的功能。 C#中没有相同的概念。你所拥有的只是内置数据类型。您可以声明的唯一事情是您拥有类或结构,但不是数据类型。

答案 6 :(得分:0)

无法在C#中定义自定义数据类型 我有同样的问题,我没有成功地寻找解决方案 就我而言,我需要为非托管类型(如MarshalAs(UnmanagedType.LPWStr)]定义数据类型