2012-01-12 15 views
10

cómo crear las propiedades setter y getter para datetime nullable. por ejemplo:Nullable DateTime?

private DateTime mTimeStamp; 

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

¿El colocador apoyo atributos con valores nulos y getter o he declararla público?

private DateTime? mTimeStamp; 

public DateTime TimeStamp 
{ 

} 

Respuesta

17

simplemente puede hacer esto en su lugar:

public DateTime? TimeStamp { get; set; } 

Si estaba teniendo problemas con el compilador es probable que sea debido a que sólo cambió una de las partes asociadas - ya sea la private variable miembro o tipo de datos de la propiedad. Deben coincidir, por supuesto, con los identificadores de auto-propiedades que le resulten agradables.

EDITAR Solo para aclarar aún más, DateTime? no es simplemente decorados con un atributo ? - es totalmente diferente deDateTime. DateTime? es la abreviatura de Nullable<DateTime>, que es un genérico (Nullable<T>) que proporciona compatibilidad con valores nulos para los tipos que no son de referencia mediante el ajuste del parámetro genérico T, que es un struct.

+0

+1 para "Tienen que coincidir" y las propiedades de manejo de automóviles que muy bien. – phoog

3

Usted puede crear la propiedad de la misma manera como lo normal DateTime propiedad:

public DateTime? TimeStamp { get; set; } 
2

una fecha y hora anulable es un tipo discreto de un DateTime regular y se puede utilizar como cualquier otro tipo . Así que el código sería:

private DateTime? mTimeStamp; 

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

Es la misma que no anulable:

public DateTime? TimeStamp { get; set; }

Puede reemplazar DateTime con DateTime? en su Código de ejemplo (se parece a código no se encuentra en la parte inferior de su puesto).

2
private DateTime? mTimeStamp; 

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

o, si está utilizando .NET 3.0+

public DateTime? TimeStamp {get;set;} 
Cuestiones relacionadas