Re[9]: анонимные классы, proof of concept
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 31.03.07 23:18
Оценка:
Здравствуйте, 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>>
--
Re[10]: анонимные классы, proof of concept
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.04.07 15:07
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>эээ, что-то я не понял. А чем это отличается от


Ничем.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: анонимные классы, proof of concept; версия 4
От: IT Россия linq2db.com
Дата: 22.08.07 22:01
Оценка:
Здравствуйте, 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.
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: анонимные классы, proof of concept; версия 4
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.08.07 11:44
Оценка:
Здравствуйте, IT, Вы писали:

IT>Читаю сейчас спецификацию. Вот что сразу бросилось в глаза:...read-only properties...


В начале были редактируемые. Потом в МС поменяли мнение. Возможно даже после того как наши МВП-шники передали наше мнение по этому поводу...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: анонимные классы, proof of concept; версия 4
От: IT Россия linq2db.com
Дата: 24.08.07 02:26
Оценка:
Здравствуйте, Vermicious Knid, Вы писали:

Ещё такая глюка:

def a = new { b = 1 };
... << RSDN@Home 1.2.0 alpha rev. 717>>
Если нам не помогут, то мы тоже никого не пощадим.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.