- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
public class CheckBox : Control
{
private bool _isChecked;
public CheckBox(BizCheckBox source): base(source)
{
IsChecked = source.Checked;
}
public bool IsChecked
{
get
{
try
{
return Convert.ToBoolean(_isChecked);
}
catch
{
return false;
}
}
set { _isChecked = value; }
}
}
с блоком try catch
Что должно случится с bool _isChecked, чтобы его преобразование к bool выкинуло исключение?
if (Convert.ToBoolean(ViewState["SomeValue"]) == false) { DoSomething(); }
и в этом нет ничего особо крамольного, хотя, конечно, лучше
И Ваш код с as никогда не вернёт true.
Это к тому, что as для другого хорош. Скажем, вытащить из объекта какой-то интерфейс или выполнить восстановительную логику (если приходится поддерживать несколько версий lecacy интерфейсов).
А класть в Object значение, а потом вытаскивать его через as как-то экстремально для будущей поддержки и возможного рефакторинга.
В каком году писан код? Под какой фреймворк? Может тогда ещё не было автосвойств.
Но говёности кода это в любом случае не умаляет.
:D
Use the types comparison in get.
есть - не безопасить, om nom nom
Причём в некоторых других то же.
Иногда плохо, когда мысли опережают пальцы, ведь хотел написать is too unsafe.
Справедливо получил минус один.
Где тут может быть небезопасное использоваение автосвойства.
Если свойство которое тут объявлено, не делает ничего инного как меняет значение private поля, да еще и криво конвертируя bool в bool.