Nullable<T> и название свойства как название типа
От: Poul_Ko Казахстан  
Дата: 28.10.10 06:06
Оценка:
Привет всем.
Наткнулся тут на неожиданное для меня поведение, решил запостить.

В шарпе есть хорошая и достаточно часто используемая фича — свойство может называться также как и его тип.
    public class SomeClass
    {
        public Int32 Int32 { get; private set; }

        public void SomeMethod()
        {
            this.Int32 = Int32.MaxValue;
        }
    }


Теперь меняем тип свойства на Int32?:
    public class SomeClass
    {
        public Int32? Int32 { get; private set; }

        public void SomeMethod()
        {
            this.Int32 = Int32.MaxValue;
        }
    }

в результате код не компилируется, компилятор считает выражение Int32.MaxValue обращением к свойству Int32. Наверняка этому есть оправдание в спецификации.

Особенно данное поведение разочаровывает при использовании с енумами, где часто приходится писать SomeEnum.AValue.
Brainbench transcript #6370594
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.