2009-08-23 5 views

ответ

3

Я также рекомендую следующую книгу, которая имеет довольно много все подробности вам хотелось бы иметь на Обобщения в .NET 2.0 года , включая общие классы, методы, делегаты и ограничения, как они отличаются от C++ templat es и дженериков в BCL.

3

Для действительно краткого объяснения: регулярные коллекции хранить объекты. Система не знает, какой объект хранится, поэтому при работе с ними вы должны указывать требуемый тип. Общие коллекции объявляют, какой объект помещается в момент его создания. Тогда вы всегда знаете, что есть. это похоже на разницу между массивом объектов и массивом String.

Я бы определенно просмотрел список ссылок на странице PK для более глубокого понимания.

2

1) Классы могут быть определены с помощью универсального типа.

public class MyClass<TClass> 

2) Типы могут быть ограничены использованием этого синтаксиса.

where TClass: struct 

3) Методы также могут давать общие типы.

public TMethod ConvertTo<TMethod>() 

4) Полный пример

public class MyClass<TClass> where TClass: struct 
{ 
    private TClass _Instance; 

    public MyClass(TClass instance) 
    { 
     _Instance = instance; 
    } 

    public TMethod ConvertTo<TMethod>() 
    { 
     return (TMethod)Convert.ChangeType(_Instance, typeof(TMethod)); 
    } 
} 
+0

Это хороший пример того, начиная дженерики, но следует поощрять к изобретать колесо так много объяснений там? –

Смежные вопросы