Ich möchte auf .NET verstehen, warum es neun Integer-Typen sind: Char
, Byte
, SByte
, Int16
, UInt16
, Int32
, UInt32
, Int64
und UInt64
; plus andere numerische Typen: Single
, Double
, Decimal
; und all diese Typen haben überhaupt keine Beziehung..NET-Primitive und Typhierarchien, warum wurde es so entworfen?
Als ich anfing, in C# zu programmieren, dachte ich "cool, es gibt einen uint
Typ, ich werde das verwenden, wenn negative Werte nicht erlaubt sind". Dann realisierte ich keine API uint
sondern int
stattdessen, und dass uint
ist nicht von int
abgeleitet, so dass eine Konvertierung benötigt wurde.
Was sind die realen Anwendungen dieser Typen? Warum haben Sie statt dessen integer
und positiveInteger
? Das sind Typen, die ich verstehen kann. Das Alter einer Person in Jahren ist ein positiveInteger
, und da positiveInteger
ist eine Teilmenge von integer
gibt es so Notwendigkeit für die Konvertierung, wann immer integer
erwartet wird.
Im Folgenden finden Sie ein Diagramm der Typhierarchie in XPath 2.0 und XQuery 1.0. Wenn Sie unter xs:anyAtomicType
suchen, können Sie die numerische Hierarchie decimal
>integer
>long
>int
>short
>byte
sehen. Warum wurde .NET nicht so entworfen? Wird der neue Rahmen "Oslo" anders sein?
Über Uint nicht in APIs, werfen Sie einen Blick auf die CLS. http://msdn.microsoft.com/en-us/library/12a7a7h3.aspx – Dykam