Как установить значение по умолчанию для автоматически реализованных свойств в 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, я пытался, но не удалось, может ли кто-нибудь объяснить, как это сделать?
Ответы
Ответ 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 в конструкторе.
Ответ 3
Вы пробовали DefaultValueAttribute
Ответ 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; }
}