like“int”表示“Int32”类,“string”表示“String”类。如何将像“abc”这样的数据类型引用到我的“Abc”类?
答案 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#中,int
,string,
等关键字只是CLR中已存在的相应类型(实现为类/结构)的别名。例如,int
与System.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)]定义数据类型