如何在C#程序中添加我自己的数据类型?
就像“int”指的是“Int32”类一样,“string”指的是“string”类。如何将像“abc”这样的数据类型引用到我的“abc”类中?像int等类型是内置类型/保留关键字。这些都是由编译器定义的,因此无法添加您自己的别名。您可以添加如下别名:如何在C#程序中添加我自己的数据类型?,c#,types,C#,Types,就像“int”指的是“Int32”类一样,“string”指的是“string”类。如何将像“abc”这样的数据类型引用到我的“abc”类中?像int等类型是内置类型/保留关键字。这些都是由编译器定义的,因此无法添加您自己的别名。您可以添加如下别名: using abc = MyNamespace.Abc; 但我想问你为什么要这么做 [另一张海报指出了一个有效的用法,即名称空间类型冲突,但我将始终使用完全限定的类型名称,否则可能会非常混乱。] using abc = MyNamespace.A
using abc = MyNamespace.Abc;
但我想问你为什么要这么做
[另一张海报指出了一个有效的用法,即名称空间类型冲突,但我将始终使用完全限定的类型名称,否则可能会非常混乱。]
using abc = MyNamespace.Abc;
我不确定这样做的好处是什么,如果您找到具有相同名称的不同类型,通常会使用它。您的“类”是一种数据类型
您给出的示例是CLR数据类型名称和C#数据类型名称之间的区别。它们是别名。C#int映射到CLR Int32,C#string映射到CLR string
您可以使用“using Xyx=Abc”创建自己的别名。您必须在每个源文件中执行此操作,因此它没有那么有用。您完全误解了“数据类型”是什么。在C#中,诸如
int
、string、
等关键字只是CLR中已经存在的相应类型(实现为类/结构)的别名。例如,int
与System.Int32
的含义完全相同,后者是由.NET framework的核心定义的结构。类似地,string
只是指System.string
,这是一个类
在.NET中,每个“数据类型”最终都继承自System.Object
(在C#中别名为Object
)。您提到的数据类型只是从System.Object
继承的预实现类和结构;他们没什么特别的。您应该认识到,C#不像其他语言那样具有特殊的基元类型:它们都只是公共类型层次结构的一部分。您使用的关键字只是为了方便而提供的
本质上,不用担心。您的类可以按原样使用,这就是应该如何使用它们
一些阅读:
在我的例子中,我需要为Marshallas(UnmanagedType.LPWStr)这样的非托管类型定义一个数据类型。你为什么要这样做?@Mitch-Wheat-也许在VS中有一个蓝色字体;)使用我的类来创建一个可供其他程序员使用的数据类型。请为您的类指定一个正确的名称开头…类就是一个数据类型!这是怎么得到这么多的选票和支持的?这毫无意义…令人毛骨悚然…我甚至使用了相同的名称空间name@fletcher:是的,那太可怕了!尤其是因为我永远不会这么做!英雄联盟假设我想把我的类交给其他程序员使用。如果我让我的类像一个数据类型,那么他们就可以像一个简单的数据类型一样轻松地理解和使用它。感谢您的回答。正如Philip Smith指出的,您的自定义类是一种数据类型,它的成员可以通过该上下文访问。很久以前,但答案“为什么”是:全局定义一种类似于
C
的数据类型,以便快速更改类型。e、 g:DBKey=System.UInt32
或DBKey=System.UInt64
。。。或者DBKey=System.Int32
我想我应该在这里使用CTS而不是CLR。我的不好。但是visual studio将我的类检测为“类”,并将其着色为类。但是数据类型在Visual Studio中颜色不同。不正确。所有类都是数据类型。VS以深蓝色突出显示C#保留字,以淡蓝色突出显示所有其他数据类型。深蓝色突出显示与类和类型之间的差异无关。