Wie füge ich meinen eigenen Datentyp in C # -Programm hinzu?

8

Wie "int" bezieht sich auf "Int32" -Klasse, "Zeichenfolge" bezieht sich auf "String" -Klasse. Wie verweise ich einen Datentyp wie "abc" auf meine "Abc" -Klasse?

    
chanchal1987 19.07.2010, 10:53
quelle

6 Antworten

14

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.

    
Philip Smith 19.07.2010, 10:59
quelle
9

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.]

    
Mitch Wheat 19.07.2010 10:59
quelle
5
%Vor%

Ich bin nicht sicher, was der Vorteil davon wäre, es wird normalerweise verwendet, wenn Sie verschiedene Typen mit dem gleichen Namen finden.

    
fletcher 19.07.2010 10:59
quelle
5

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:

Will Vousden 19.07.2010 11:45
quelle
2

Typen wie int, etc sind in types / reserved keywords enthalten. Diese werden vom Compiler definiert, daher ist es nicht möglich, eigene hinzuzufügen.

    
Laurens Ruijtenberg 19.07.2010 10:56
quelle
0

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.

    
Johann Strydom 19.07.2010 11:53
quelle

Tags und Links