Создание элемента тимплейта
От: loknalori Россия  
Дата: 23.06.09 07:50
Оценка:
Хочется чего нибудь типа

    class Somth<T>
    {
        public static T Get()
        {
            T val= new T(); /*Вот тут законно ругаются  Cannot create an instance of 
                            the variable type 'T' because it does not have the new() constraint*/
            return val;
        }
    }


Как обойти?
Re: Создание элемента тимплейта
От: Uzzy Россия  
Дата: 23.06.09 07:57
Оценка:
Здравствуйте, loknalori, Вы писали:

L>Хочется чего нибудь типа


L>
L>    class Somth<T>
L>    {
L>        public static T Get()
L>        {
L>            T val= new T(); /*Вот тут законно ругаются  Cannot create an instance of 
L>                            the variable type 'T' because it does not have the new() constraint*/
L>            return val;
L>        }
L>    }
L>


L>Как обойти?

Activator заюзать.
Re[2]: Создание элемента тимплейта
От: Пельмешко Россия blog
Дата: 23.06.09 07:58
Оценка: 1 (1)
Здравствуйте, Uzzy, Вы писали:

U>Здравствуйте, loknalori, Вы писали:


L>>Хочется чего нибудь типа

L>>Как обойти?

U>Activator заюзать.


Чушь, даже компиль подсказывает про constraint.
    class Somth<T> where T : new()
    {
        public static T Get()
        {
            T val= new T(); /*Вот тут законно ругаются  Cannot create an instance of 
                            the variable type 'T' because it does not have the new() constraint*/
            return val;
        }
    }
Re[3]: Создание элемента тимплейта
От: Пельмешко Россия blog
Дата: 23.06.09 08:04
Оценка:
Здравствуйте, Пельмешко, Вы писали:

П>Здравствуйте, Uzzy, Вы писали:

U>>Activator заюзать.

[skipped]

Внутри, кстати, Activator и будет использоваться, только зачем же руками и отказываться от синтаксиса new, если C# предлагает constraint, указывающий наличие конструктора без параметров у типа дженерика?
Re[4]: Создание элемента тимплейта
От: loknalori Россия  
Дата: 23.06.09 08:09
Оценка:
Здравствуйте, Пельмешко, Вы писали:

П>Здравствуйте, Пельмешко, Вы писали:


П>>Здравствуйте, Uzzy, Вы писали:

U>>>Activator заюзать.

П>[skipped]


П>Внутри, кстати, Activator и будет использоваться, только зачем же руками и отказываться от синтаксиса new, если C# предлагает constraint, указывающий наличие конструктора без параметров у типа дженерика?


э.... Пардон. Я сам вобще родом из С++. О чем идет речь?
Re[5]: Создание элемента тимплейта
От: _FRED_ Черногория
Дата: 23.06.09 08:23
Оценка:
Здравствуйте, loknalori, Вы писали:

L>э.... Пардон. Я сам вобще родом из С++. О чем идет речь?


С таким багажом будет значительно проще. В данном вопросе помогла бы статья Нововведения в C# 2.0
Автор(ы): Владислав Чистяков (VladD2)
Дата: 24.06.2004
В статье рассказывается о новшествах, которые должны появиться в новой версии языка C#

.
Help will always be given at Hogwarts to those who ask for it.
Re: Создание элемента тимплейта
От: Shvedskiy  
Дата: 23.06.09 08:47
Оценка:
Здравствуйте, loknalori, Вы писали:

L>Хочется чего нибудь типа


L>
L>    class Somth<T>
L>    {
L>        public static T Get()
L>        {
L>            T val= new T(); /*Вот тут законно ругаются  Cannot create an instance of 
L>                            the variable type 'T' because it does not have the new() constraint*/
L>            return val;
L>        }
L>    }
L>


L>Как обойти?

where T : new()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.