property custom c# asp.net default-value automatic-properties

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; } }