Подтвердить что ты не робот

Как установить значение по умолчанию для автоматически реализованных свойств в ASP.NET

Я узнал, что С# 3.0 поставляется с новой функцией Auto-Implemented Properties, мне понравилось, так как нам не нужно объявлять дополнительную приватную переменную в этом (по сравнению с предыдущим свойством), раньше я использовал свойство т.е.

private bool isPopup = true;
public bool IsPopup
{
    get
    {
      return isPopup;
    }
    set
    {
      isPopup = value;
    }
}

Теперь я преобразовал его в свойство Auto-Implemented i.e.

public bool IsPopup
{
    get; set;
}

Я хочу установить значение по умолчанию этого свойства в true, не используя его даже в методе page_init, я пытался, но не удалось, может ли кто-нибудь объяснить, как это сделать?

4b9b3361

Ответ 1

Вы можете инициализировать свойство в конструкторе по умолчанию:

public MyClass()
{
   IsPopup = true;
}

С С# 6.0 можно инициализировать свойство в объявлении как обычные поля члена:

public bool IsPopup { get; set; } = true;  // property initializer

Теперь даже возможно создать реальное автоматическое свойство только для чтения, которое можно либо инициализировать напрямую, либо в конструкторе, но не задано в других методах класса.

public bool IsPopup { get; } = true;  // read-only property with initializer

Ответ 2

Атрибуты, определенные для свойства auto, не применяются к полю резервного копирования, поэтому атрибут для значения по умолчанию не будет работать для этого свойства.

Вы можете, однако, инициализировать свойство auto:

VB.NET

Property FirstName As String = "James"
Property PartNo As Integer = 44302
Property Orders As New List(Of Order)(500)

С# 6.0 и выше

public string FirstName { get; set; } = "James";
public int PartNo { get; set; } = 44302;
public List<Order> Orders { get; set; } = new List<Order>(500);

С# 5.0 и ниже

К сожалению, версии С# ниже 6.0 не поддерживают это, поэтому вам нужно инициализировать значения по умолчанию для свойств auto в конструкторе.

Ответ 4

using System.ComponentModel;

[DefaultValue(true)]
public bool IsPopup
{
    get
    {
      return isPopup;
    }
    set
    {
      isPopup = value;
    }
}

Ответ 5

Вы можете использовать значение свойства по умолчанию, как показано ниже

Одно из преимуществ этого метода: не нужно проверять значения null для Boolean типов

using System.ComponentModel; 

public class ClassName
 {
   [DefaultValue(true)]
   public bool IsPopup{ get; set; }
 }