7 Stimmen

Bedeutung des ? Operators in C# für Eigenschaften

Mögliches Duplikat:
? (nullable) Operator in C#

In System.Windows.Media.Animation sehe ich den Code wie folgt:

    public double? By { get; set; }

Was macht der Operator ? hier? Weiß das jemand?

Ich habe versucht, dies zu googeln, aber es ist schwierig, nach dem Operator zu suchen, wenn man nicht weiß, wie er heißt. Ich habe mir die Seite über Operatoren angesehen ( http://msdn.microsoft.com/en-us/library/6a71f45d(v=vs.80).aspx ), aber der Operator ? ist dort nicht aufgeführt.

Danke!

18voto

Konrad Rudolph Punkte 503837

Le site ? ist ein Typdekorator. T? ist dasselbe wie Nullable<T> d.h. ein nullbarer Werttyp.

Le site Dokumentation der By Eigenschaft erklärt, warum es hier verwendet wird:

Die Eigenschaft steuert, wie A DoubleAnimation fortschreitet; doch anstatt die By können Sie auch die Eigenschaft From y To Eigenschaften (oder beides), um den Verlauf der Animation zu steuern. Jede Kombination von Eigenschaften (außer To y By ) erlaubt ist, also muss es eine Möglichkeit geben, zu signalisieren, dass eine Eigenschaft nicht festgelegt - Daher ist sie löschbar.

Verwenden Sie die By wenn Sie einen Wert "um" einen bestimmten Betrag animieren möchten, anstatt einen Start- oder Endwert anzugeben. Sie können auch die Eigenschaft By Eigenschaft mit der From Eigentum.

6voto

Tim Punkte 27854

Das ? bedeutet, dass es nullbar ist (der Wert kann auf null gesetzt werden).

Nullbare Typen (C# Programmierhandbuch)

2voto

Anton Gogolev Punkte 109749

Es handelt sich nicht um einen Betreiber. Es handelt sich vielmehr um eine spezielle Kurzsyntax für die Deklaration von löschbar Werte.

1voto

Renatas M. Punkte 11458

Es handelt sich um eine löschbare Eigenschaft, d.h. Sie können die By = null , ohne ? Sie erhalten die Fehlermeldung, dass double nicht null sein kann.

1voto

V4Vendetta Punkte 35598

? steht für nullbare Typen, dies qualifiziert By in Ihrem Fall, um einen Nullwert zu halten, was bei einer Wertart nicht möglich ist

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X