custom - set c#
Cómo establecer el valor predeterminado para las propiedades implementadas automáticamente en ASP.NET (5)
¿Has probado DefaultValueAttribute
Esta pregunta ya tiene una respuesta aquí:
Llegué a saber que C # 3.0 viene con una nueva característica de las Propiedades de Implementación Automática, me gustó ya que no tenemos que declarar una variable extra privada en esto (en comparación con la propiedad anterior), antes estaba usando una Propiedad, es decir
private bool isPopup = true;
public bool IsPopup
{
get
{
return isPopup;
}
set
{
isPopup = value;
}
}
Ahora lo he convertido en propiedad auto-implementada, es decir
public bool IsPopup
{
get; set;
}
Quiero establecer el valor predeterminado de esta propiedad en verdadero sin usarlo, ni siquiera en el método page_init. Lo intenté pero no tuve éxito. ¿Alguien puede explicar cómo hacer esto?
Los atributos especificados para una propiedad automática no se aplican al campo de respaldo, por lo que un atributo para un valor predeterminado no funcionará para este tipo de propiedad.
Sin embargo, puede inicializar una propiedad automática:
VB.NET
Property FirstName As String = "James"
Property PartNo As Integer = 44302
Property Orders As New List(Of Order)(500)
C # 6.0 y superior
public string FirstName { get; set; } = "James";
public int PartNo { get; set; } = 44302;
public List<Order> Orders { get; set; } = new List<Order>(500);
C # 5.0 y por debajo
Desafortunadamente, las versiones de C # por debajo de 6.0 no son compatibles con esto, por lo que debe inicializar los valores predeterminados para las propiedades automáticas en el constructor.
Puede inicializar la propiedad en el constructor por defecto:
public MyClass()
{
IsPopup = true;
}
Con C # 6.0, es posible inicializar la propiedad en la declaración como campos de miembros normales:
public bool IsPopup { get; set; } = true; // property initializer
Ahora incluso es posible crear una propiedad automática de solo lectura real que puede inicializar directamente o en el constructor, pero no establecer en otros métodos de la clase.
public bool IsPopup { get; } = true; // read-only property with initializer
Puede utilizar el valor de propiedad predeterminado como abajo
Una ventaja de este método es que no necesita verificar valores nulos para los tipos booleanos
using System.ComponentModel;
public class ClassName
{
[DefaultValue(true)]
public bool IsPopup{ get; set; }
}
using System.ComponentModel;
[DefaultValue(true)]
public bool IsPopup
{
get
{
return isPopup;
}
set
{
isPopup = value;
}
}