13 Stimmen

Nullable DateTime?

Wie man Setter und Getter-Eigenschaften für DateTime mit Nullable erstellt. zum Beispiel:

private DateTime mTimeStamp;

public DateTime TimeStamp
{
      get { return mTimeStamp; }
      set { mTimeStamp = value; }
}

Unterstützen nullable Attribute Setter und Getter oder muss ich es öffentlich deklarieren?

private DateTime? mTimeStamp;

public DateTime TimeStamp
{

}

20voto

Yuck Punkte 46967

Sie können einfach das hier tun:

public DateTime? TimeStamp { get; set; }

Wenn Sie Probleme mit dem Compiler hatten, liegt es wahrscheinlich daran, dass Sie nur eine der zugehörigen Teile geändert haben - entweder die private Member-Variablen oder den Datentyp der Eigenschaft. Sie müssen natürlich übereinstimmen, und Auto-Eigenschaften erledigen das schön für Sie.

EDIT Nur zur weiteren Klarstellung, DateTime? ist nicht einfach mit einem ? Attribut versehen - es ist völlig anders als DateTime. DateTime? ist eine Abkürzung für Nullable, was ein generisches (Nullable) ist, das unterstützt Nullable für Nicht-Verweistypen bereitstellt, indem der generische Parameter T verpackt wird, der ein struct ist.

3voto

John Kalberer Punkte 5500

Sie können die Eigenschaft auf die gleiche Weise wie eine normale DateTime-Eigenschaft erstellen:

public DateTime? Zeitstempel { get; set; }

2voto

Abe Miessler Punkte 78979

Sie sollten in der Lage sein, eine DateTime auf diese Weise nullable zu machen:

private DateTime? mTimeStamp;

public DateTime? TimeStamp
{
      get { return mTimeStamp; }
      set { mTimeStamp = value; }
}

Sie können diesen Modifikator auch auf andere Typen anwenden. Lesen Sie hier mehr: http://msdn.microsoft.com/en-us/library/1t3y8s4s%28v=VS.100%29.aspx

2voto

Kirk Woll Punkte 72923

Ein nullable DateTime ist ein diskreter Typ von einem regulären DateTime und kann wie jeder andere Typ verwendet werden. Also wäre dein Code:

private DateTime? mTimeStamp;

public DateTime? TimeStamp
{
      get { return mTimeStamp; }
      set { mTimeStamp = value; }
}

2voto

Cymen Punkte 13491

Es ist dasselbe wie nicht-nullable:

public DateTime? TimeStamp { get; set; }

Sie können DateTime in Ihrem oberen Beispielcode durch DateTime? ersetzen (es sieht so aus, als ob Code am Ende Ihres Beitrags fehlt).

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