Компилятор не дает сделать вложенные в свойства поля с одинаковыми именами:
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>>