Was macht das? Operator bedeutet in C # nach einer Typdeklaration?

8

Ich habe einen C # -Code mit der folgenden Array-Deklaration. Beachten Sie die einzelne ? nach Color .

%Vor%

Bei meinen Nachforschungen habe ich festgestellt, dass wenn Sie einen Code wie:

haben %Vor%

Die Variable a ist nicht initialisiert. Wann und wo würdest du das verwenden?

    
user2425056 27.05.2013, 13:05
quelle

6 Antworten

15

? ist nur syntaktischer Zucker, dh das Feld ist Nullable. Es ist eigentlich kurz für Nullable<T> .

  

In C # und Visual Basic markieren Sie einen Werttyp als Nullable, indem Sie die Option verwenden   ? Notation nach dem Werttyp. Zum Beispiel, int? in C # oder Integer?   deklariert in Visual Basic einen ganzzahligen Werttyp, der zugewiesen werden kann   null.

Sie können null keinen Werttypen zuweisen, int ist ein Werttyp, der null Wert nicht enthalten kann, int? kann dagegen einen Nullwert speichern.

Dasselbe gilt für Color , da es sich um eine Struktur (also Werttyp) handelt, die keine Nullwerte enthalten kann. Mit Color?[,] erstellen Sie ein Array mit nullfähigen Farben .

Für Ihre Frage:

  

Die Variable 'a' ist nicht initialisiert. Wann und wo würdest du verwenden?   das?

Wenn ? nicht mit null oder einem anderen Wert initialisiert wird, muss es initialisiert werden.

%Vor%     
Habib 27.05.2013, 13:06
quelle
4

Dies bedeutet, dass der definierte Typ nullfähig ist. Weitere Informationen finden Sie hier .

Mit Nullwerten können Sie tun:

%Vor%

Und natürlich Null-Checks:

%Vor%     
Dimitar Dimitrov 27.05.2013 13:06
quelle
0

Color? bezieht sich auf eine Nullable Color und entspricht Nullable<Color> .

%Vor%

NULL-Typen

    
Ahmed KRAIEM 27.05.2013 13:07
quelle
0
  

Die Syntax T? ist eine Abkürzung für System.Nullable, wobei T ein Werttyp ist. Die zwei Formen sind austauschbar.

Ссылка

    
Sergey Akopov 27.05.2013 13:08
quelle
0

Es ist eine nullbare Struktur

Ссылка

Auch ein Duplikat Ссылка

    
Nipun Ambastha 27.05.2013 13:08
quelle
0

Dies bedeutet, dass das Objekt einen null -Wert zusätzlich zu seinem normalen Bereich haben kann.

Von MSDN :

  

Nullable-Typen sind Instanzen der Nullable-Struktur. Ein nullwertfähiger Typ kann den korrekten Wertebereich für den zugrunde liegenden Werttyp sowie einen zusätzlichen Nullwert darstellen. Beispielsweise kann eine Nullable, ausgesprochen "Nullable of Int32", einen beliebigen Wert von -2147483648 bis 2147483647 zugewiesen werden, oder sie kann den Nullwert zugewiesen werden.
  ...

Beispiel

%Vor%     
bash.d 27.05.2013 13:07
quelle

Tags und Links