obtener - datetime solo fecha c#
C#4 valores de parámetro predeterminados: ¿cómo asignar un valor predeterminado DateTime/object? (6)
Esta pregunta ya tiene una respuesta aquí:
Si DateTime es un objeto y los parámetros predeterminados de C # solo se pueden asignar a constantes de tiempo de compilación, ¿cómo se proporcionan valores predeterminados para objetos como DateTime?
Estoy tratando de inicializar valores en un POCO con un constructor, usando parámetros con nombre con valores predeterminados.
A diferencia de VB, C # no admite literales de fecha. Y dado que los parámetros opcionales se ven así en IL, no puede falsificarlo con atributos.
.method private hidebysig static void foo([opt] int32 x) cil managed
{
.param [1] = int32(5)
.maxstack 8
L_0000: nop
L_0001: ret
}
.method //this is a new method
private hidebysig static //it is private, ???, and static
void foo //it returns nothing (void) and is named Foo
([opt] int32 x) //it has one parameter, which is optional, of type int32
.param [1] = int32(5) //give the first param a default value of 5
La única manera de hacerlo directamente es usar el valor default(DateTime)
, que es la constante de tiempo de compilación. ¿O puede DateTime?
utilizando DateTime?
y establecer el valor predeterminado en null
.
Ver también esta pregunta relacionada con TimeSpan
.
new DateTime () también es igual a DateTime.MinValue
Podría crear un parámetro predeterminado como ese.
void test(DateTime dt = new DateTime())
{
//...
}
podrías usar:
Datetime.MinValue
para la inicialización.
DateTime
no se puede usar como una constante, pero se puede convertir en un tipo que admite nulos ( DateTime?
).
Dale el DateTime?
un valor predeterminado de null
, y si se establece en null
al comienzo de su función, entonces puede inicializarlo a cualquier valor que desee.
static void test(DateTime? dt = null)
{
if (dt == null)
{
dt = new DateTime(1981, 03, 01);
}
//...
}
Puede llamarlo con un parámetro nombrado como este:
test(dt: new DateTime(2010, 03, 01));
Y con el parámetro predeterminado como este:
test();
private System.String _Date= "01/01/1900";
public virtual System.String Date
{
get { return _Date; }
set { _Date= value; }
}
Podemos asignar valor a una etiqueta como se indica a continuación,
lblDate.Text = Date;
También podemos obtener el valor,
DateTime dt = Convert.ToDateTime(label1.Text);