Wie "int" bezieht sich auf "Int32" -Klasse, "Zeichenfolge" bezieht sich auf "String" -Klasse. Wie verweise ich einen Datentyp wie "abc" auf meine "Abc" -Klasse?
Ihre "Klasse" ist ein Datentyp.
Die Beispiele, die Sie angeben, sind der Unterschied zwischen CLR-Datentypnamen und C # -Datentypnamen. Sie sind Aliase. C # int entspricht CLR Int32 und C # string entspricht CLR String.
Sie können Ihre eigenen Aliase erstellen, indem Sie "using Xyx = Abc" verwenden. Sie müssen dies in jeder Quelldatei tun, daher ist es nicht so nützlich.
Sie können einen Alias wie folgt hinzufügen:
%Vor%Aber ich würde fragen, warum Sie das tun möchten.
[Ein anderes Poster wies auf eine gültige Verwendung hin, nämlich Namespace-Typ-Konflikte, aber dann würde ich immer den voll qualifizierten Typ-Namen verwenden, sonst könnte es sehr verwirrend werden.]
Sie verstehen völlig falsch, was ein "Datentyp" ist. In C # sind Schlüsselwörter wie int
, string,
usw. einfach Aliase für die entsprechenden Typen (implementiert als Klassen / Strukturen), die bereits in der CLR vorhanden sind. Zum Beispiel hat int
genau die gleiche Bedeutung wie System.Int32
, eine Struktur, die vom Kern des .NET-Frameworks definiert wird. In ähnlicher Weise bedeutet string
einfach System.String
, was eine Klasse ist.
In erbt jeder "Datentyp" schließlich von System.Object
(was in C # als object
aliasiert wird). Die Datentypen, auf die Sie verweisen, sind einfach vordefinierte Klassen und Strukturen, die von System.Object
; Es gibt nichts besonderes an ihnen. Sie sollten wissen, dass C # keine speziellen primitiven Typen aufweist, wie dies bei anderen Sprachen der Fall ist: Sie sind alle nur Teil einer gemeinsamen Typhierarchie. Die Schlüsselwörter, mit denen Sie vertraut sind, werden einfach zur Verfügung gestellt.
Im Wesentlichen machen Sie sich darüber keine Gedanken . Ihre Klassen können so verwendet werden, wie sie sind, und so sollen sie verwendet werden.
Einige lesen:
Typen wie int, etc sind in types / reserved keywords enthalten. Diese werden vom Compiler definiert, daher ist es nicht möglich, eigene hinzuzufügen.
Die Funktion, nach der Sie suchen, ist wahrscheinlich etwas, das Sie von C ++ gewohnt sind. Es gibt kein äquivalentes Konzept in C #. Sie haben nur den eingebauten Datentyp. Das einzige, was Sie deklarieren können, ist Ihre eigene Klasse oder Struktur, aber kein Datentyp.