2012-04-03 17 views
2

Ich muss überprüfen, ob ein Objekt einen Wert enthält. Die folgende Funktion funktioniert einwandfrei, wenn das Objekt ein String-Typ ist, aber ich habe versucht, dies durch eine generische Art zu ersetzen, ohne nach dem Typ zu suchen. Gibt es eine Möglichkeit, dies zu tun? Danke im Voraus.Wie überprüft man, ob ein Objekt einen Wert enthält?

+5

Definieren Sie, was Sie unter "Objekt enthält einen Wert" verstehen. – Oded

+0

[C# Ternärer Operator] (http://msdn.microsoft.com/en-us/library/ty67wk28 (v = vs.80) .aspx) könnte für Sie von Nutzen sein. –

+0

Halten Sie 0, 'DateTime.MinValue' und' DBNull.Value' für "Werte"? –

Antwort

3

Sie können nach Standardtypen suchen, wenn Sie sie generisch machen. d. h. ist 0 eine gültige Nummer in Ihrer Nutzung?

if (fieldData == default(T)) 
{ 
    return; 
} 

Alternativ können Sie auf Nullable Typen wechseln.

if (fieldData.HasValue)... 
1

Sie können dynamic verwenden.

Die CLR bestimmt den Typ zur Laufzeit und ruft die Eigenschaft ab.

Verwandte Themen