Несогласованная область видимости полей класса
От: Mumitroller Беларусь  
Дата: 01.02.11 16:44
Оценка:
Компилятор не дает сделать вложенные в свойства поля с одинаковыми именами:
class Class1
{
    public Prop1 : int
    {
        mutable fld : int;
        get { fld; }
        set { fld = value; }
    }
    
    public Prop2 : int
    {
        mutable fld : int; // <== field: static mutable fld : int; redefined in `Program'
        get { fld; }
        set { fld = value; }
    }
}

Тем не менее ругается на попытку обратиться к полю, вложенному в другое свойство:
class Class2
{
    public Prop1 : int
    {
        mutable fld : int;
        get { fld; }
        set { fld = value; }
    }
    
    public Prop2 : int
    {
        get { fld; }         // <== unbound name `fld'
        set { fld = value; } // <== unbound name `fld'
    }
}

Ошибка во втором случае выглядит логичной, так как видимость поля fld ограничена свойством Prop1.

А вот ошибка в первом случае выглядит странной. Проблема, конечно, некритичная, но заставляет в таких случаях выдумывать более длинные имена полей.

Mumitroller
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.