Обобщенный тип с именем класса. Nemerle vs C#
От: _NN_ www.nemerleweb.com
Дата: 04.09.13 18:45
Оценка:
Nemerle:
class A[A] {}

Компилируется.

C# аналогичный код:

error CS0694: Type parameter 'A' has the same name as the containing type, or method


В чем связан запрет в C# ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Обобщенный тип с именем класса. Nemerle vs C#
От: Аноним  
Дата: 04.09.13 18:48
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Nemerle:

_NN>
_NN>class A[A] {}
_NN>

_NN>Компилируется.

_NN>C# аналогичный код:

_NN>

error CS0694: Type parameter 'A' has the same name as the containing type, or method


_NN>В чем связан запрет в C# ?


Конструктор будет как выглядеть?

public A(A a) { this.a = a;}
Re[2]: Обобщенный тип с именем класса. Nemerle vs C#
От: _NN_ www.nemerleweb.com
Дата: 04.09.13 19:42
Оценка: 27 (2) +1 :))
Здравствуйте, Аноним, Вы писали:
_NN>>В чем связан запрет в C# ?

А>Конструктор будет как выглядеть?


А>
А>public A(A a) { this.a = a;}
А>


А в чем проблема ? Не можем выбрать какой A ?
Можно трактовать всегда как обобщенный аргумент, а для класса указывать полное имя, скажем global::A.

Или надо изначально было делать по уму
В Nemerle все решается просто и логично:
class A[A]
{
  // typeof(x) - сам класс
  // typeof(y) - обобщенный аргумент.
  public this(x : this, y : A)
  {
  }
}
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: Обобщенный тип с именем класса. Nemerle vs C#
От: catbert  
Дата: 05.09.13 20:11
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>А в чем проблема ? Не можем выбрать какой A ?

_NN>Можно трактовать всегда как обобщенный аргумент, а для класса указывать полное имя, скажем global::A.

_NN>Или надо изначально было делать по уму

_NN>В Nemerle все решается просто и логично:
_NN>
_NN>class A[A]
_NN>{
_NN>  // typeof(x) - сам класс
_NN>  // typeof(y) - обобщенный аргумент.
_NN>  public this(x : this, y : A)
_NN>  {
_NN>  }
_NN>}
_NN>


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

Но вообще я согласен, Немерле здесь выигрывает.
Re[4]: Обобщенный тип с именем класса. Nemerle vs C#
От: _NN_ www.nemerleweb.com
Дата: 05.09.13 20:32
Оценка:
Здравствуйте, catbert, Вы писали:

C>А вы пробовали this юзать в генерик-типах? Прошлый раз когда я пробовал, все плачевно закончилось.

Баги конечно надо бы чинить, было бы только время
В данном примере все хорошо работает.

C>Но вообще я согласен, Немерле здесь выигрывает.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Обобщенный тип с именем класса. Nemerle vs C#
От: cvetkov  
Дата: 06.09.13 05:45
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>В чем связан запрет в C# ?

очевидно с тем что практической пользы от такого кода нет, а разрешение конфликта усложнит спецификацию.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.