Изменить значение по умолчанию для Boolean
Я пишу приложение, где у меня довольно много свойств типа Boolean:
private bool kajmak = true;
public bool Kajmak
{
get { return kajmak ; }
set { kajmak = value; FirePropertyChanged(() => Kajmak); }
}
Как вы видите, я установил kajmak
в true
в начале.. -the причина - nonrelevant-. (Возможно, вы знаете, что значение по умолчанию для переменной bool ложно).
Теперь, есть ли способ изменить значение по умолчанию bool
на true
? Поэтому я бы написал:
private bool kajmak; //kajmak = true
вместо
private bool kajmak = true;
Что я могу сделать для этого?
Ответы
Ответ 1
Поскольку по умолчанию логические значения ложны, я использую в своих именах положительные формы, такие как IsInitialized
, HasSomething
и т. IsInitialized
, HasSomething
я хочу быть ложными по умолчанию, пока я их явно не установил.
Если вы обнаружите, что по умолчанию вам нужно что-то истинное, возможно, вам нужно переименовать переменную, поэтому имеет смысл, когда значение по умолчанию - false.
Ответ 2
C Sharp 6.0 представил новый новый способ:
public bool YourBool { get; set; } = true;
Это эквивалентно старому способу:
private bool _yourBool = true;
public bool YourBool
{
get { return _yourBool; }
set { _yourBool = value; }
}
см. эту статью http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx
Ответ 3
Нет. Нет способа изменить значение по умолчанию, назначенное.NET. Лучше всего либо назначить соответствующий дефолт в частном члене:
private book kajmak = false;
Или используйте конструктор, как и вы, и назначьте его по умолчанию:
public class SomeClass
{
public SomeClass()
{
Kajmak = false;
}
public book Kajmak { get; set; }
}
Ответ 4
В сервисе:
public bool Kajmak { get; set; } = true;
Ответ 5
Нет, нет возможности изменить значение по умолчанию. Если вы можете изменить значение по умолчанию, оно больше не будет по умолчанию;).
Но чтобы установить значение по умолчанию null, вы можете использовать это:
bool? kajmak;
Но это не то, что вы хотите...
Ответ 6
В процессе попыток сделать что-то подобное, коллега просветил меня до дурака? тип. Он может быть истинным, ложным или нулевым и не возражает против того, чтобы быть на левой стороне такого компаратора. Это не отвечает на ваш вопрос о том, как по умолчанию bool имеет значение true, но решает ли ваша концептуальная проблема того, чтобы ваши переменные были определены как истинные по умолчанию.
Я отправляю сообщение только потому, что это был лучший результат, когда я искал, и эта информация была полезной для меня. Надеюсь, это будут другие, которые найдут эту страницу.
Ответ 7
public book Kajmak { get; set; }=true;
Ответ 8
Вы можете создать класс myBool, который по умолчанию имеет значение false и неявное преобразование из bool в ваш класс.