- 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; }
}
}
abatishchev 04.02.2011 20:54 # +1
expl 04.02.2011 21:54 # 0
с блоком try catch
Что должно случится с bool _isChecked, чтобы его преобразование к bool выкинуло исключение?
bober_maniac 04.02.2011 22:21 # +2
expl 05.02.2011 12:26 # 0
TarasB 04.02.2011 22:11 # +4
Lure Of Chaos 04.02.2011 22:22 # +1
sentyaev 04.02.2011 23:09 # 0
if (Convert.ToBoolean(ViewState["SomeValue"]) == false) { DoSomething(); }
bugmenot 05.02.2011 00:08 # −1
abatishchev 05.02.2011 22:42 # 0
и в этом нет ничего особо крамольного, хотя, конечно, лучше
sentyaev 05.02.2011 23:02 # 0
abatishchev 05.02.2011 23:25 # 0
TauSigma 16.05.2013 18:29 # 0
И Ваш код с as никогда не вернёт true.
TauSigma 16.05.2013 18:41 # 0
abatishchev 16.05.2013 19:44 # 0
TauSigma 16.05.2013 22:27 # 0
Это к тому, что as для другого хорош. Скажем, вытащить из объекта какой-то интерфейс или выполнить восстановительную логику (если приходится поддерживать несколько версий lecacy интерфейсов).
А класть в Object значение, а потом вытаскивать его через as как-то экстремально для будущей поддержки и возможного рефакторинга.
koodeer 05.02.2011 02:07 # 0
В каком году писан код? Под какой фреймворк? Может тогда ещё не было автосвойств.
Но говёности кода это в любом случае не умаляет.
qsmart 05.02.2011 08:14 # 0
:D
ningun 05.02.2011 11:59 # −2
Use the types comparison in get.
bugmenot 05.02.2011 12:02 # 0
есть - не безопасить, om nom nom
ningun 05.02.2011 12:43 # 0
bugmenot 05.02.2011 13:31 # +1
ningun 05.02.2011 13:56 # 0
Причём в некоторых других то же.
Иногда плохо, когда мысли опережают пальцы, ведь хотел написать is too unsafe.
Справедливо получил минус один.
qsmart 05.02.2011 16:53 # 0
Где тут может быть небезопасное использоваение автосвойства.
Если свойство которое тут объявлено, не делает ничего инного как меняет значение private поля, да еще и криво конвертируя bool в bool.