Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Задачка про generics C#   Найти похожие ветки 

 
oxffff ©   (2010-04-22 12:05) [0]

Допустим, есть следующий код VS2005(C# 2.0)
class A
  { }

class B : A
  { }

       static void Bound<W,T>() where W:B,T
                                  where T:A
                                          {
          T varB;
      varB = new B();
           varB = (T) new B();  

       }

       static void Main(string[] args)
       {
           Bound<C,B>();
       }

Может ли кто-нибудь привести пример, что выделенные присваивания некорректны на что жалуется компилятор?


 
oxffff ©   (2010-04-22 12:16) [1]

Ладно задачка Видимо простая. Но это правильно.


 
jack128_   (2010-04-22 13:26) [2]


> ли кто-нибудь привести пример, что выделенные присваивания
> некорректны на что жалуется компилятор


class C : B {}

Bound<C, C>  ?  (C)(new B()) - не коректно.


 
oxffff ©   (2010-04-22 14:18) [3]


> jack128_   (22.04.10 13:26) [2]
>
> > ли кто-нибудь привести пример, что выделенные присваивания
>
> > некорректны на что жалуется компилятор
>
>
> class C : B {}
>
> Bound<C, C>  ?  (C)(new B()) - не коректно.


Именно так. Собственно нельзя ограничь bound параметр сверху.


 
oxffff ©   (2010-04-22 14:20) [4]


> Именно так. Собственно нельзя ограничь bound параметр сверху.


В смысле конкретным типом.


 
RC   (2010-04-22 14:26) [5]

Не заявлено требование на обязательное наличие конструктора без параметров. У подственного класса конструктор может быть приватный, например, или интернал.

static void Bound<W, T>()
           where W : B, T
           where T : A, new()


 
oxffff ©   (2010-04-23 11:53) [6]


> RC   (22.04.10 14:26) [5]
> Не заявлено требование на обязательное наличие конструктора
> без параметров. У подственного класса конструктор может
> быть приватный, например, или интернал.
>
> static void Bound<W, T>()
>            where W : B, T
>            where T : A, new()


Здесь new B(), а не  new T().



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.159 c
8-1202991381
Jimmy
2008-02-14 15:16
2010.08.27
Сохранение в psd


2-1268982904
M@G30
2010-03-19 10:15
2010.08.27
Как хранить данные в TreeNode?


15-1270007391
Дмитрий С
2010-03-31 07:49
2010.08.27
Какой гугл умный:


2-1274878317
Delphist2
2010-05-26 16:51
2010.08.27
копирование из spinedit


15-1275924128
bss
2010-06-07 19:22
2010.08.27
Регулярные выражения: как проверить вхождение числа в диапазон