Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, IT, Вы писали:
IT>>Тогда убийства надо начинать с Хейлсберга.
VD>По-моему, он не предлагал описывать типы исползуемые для описания функций внтри этих функций.
VD>Анонимный тип вполне может быть описан по месту. Как-то так:
VD>VD>x : { Name : string; Age : DateTime; }
VD>
VD>По уму можно было бы даже ему и имена давать:
VD>VD>type someType = { Name : string; Age : DateTime; };
VD>...
VD>Func(x : someType) : someType
VD>{
VD> ...
VD>}
VD>
эээ, что-то я не понял. А чем это отличается от
// Nemerle
[Record]
class someType
{
public Name : string;
public Age : DateTime;
}
Func(x : someType) : someType
{
...
}
, кроме введения нового синтаксиса, конечно же.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Сергей Туленцев, Вы писали:
СТ>эээ, что-то я не понял. А чем это отличается от
Ничем.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Здравствуйте, Vermicious Knid, Вы писали:
VK>В этой версии наконец реализована вся функциональность анонимных типов, которую я нашел в спецификации C# 3.0 (если я что-то пропустил — дайте знать).
Читаю сейчас спецификацию. Вот что сразу бросилось в глаза:
The members of an anonymous type are a sequence of read-only properties inferred from the anonymous object initializer used to create an instance of the type. Specifically, an anonymous object initializer of the form
new { p1 = e1 , p2 = e2 , … pn = en }
declares an anonymous type of the form
class __Anonymous1
{
private readonly T1 f1 ;
private readonly T2 f2 ;
…
private readonly Tn fn ;
public __Anonymous1(T1 a1, T2 a2,…, Tn an) {
f1 = a1 ;
f2 = a2 ;
…
fn = an ;
}
public T1 p1 { get { return f1 ; } }
public T2 p2 { get { return f2 ; } }
…
public T1 p1 { get { return f1 ; } }
public override bool Equals(object o) { … }
public override int GetHashCode() { … }
}
where each Tx is the type of the corresponding expression ex.
Т.е. свойства всё же read-only.
Здравствуйте, IT, Вы писали:
IT>Читаю сейчас спецификацию. Вот что сразу бросилось в глаза:...read-only properties...
В начале были редактируемые. Потом в МС поменяли мнение. Возможно даже после того как наши МВП-шники передали наше мнение по этому поводу...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Здравствуйте, Vermicious Knid, Вы писали:
Ещё такая глюка:
def a = new { b = 1 };
... << RSDN@Home 1.2.0 alpha rev. 717>>