Это расширение этого вопроса и, возможно, даже может быть дубликатом какого-то другого вопроса (если так, пожалуйста, простите меня). я см. Из MSDN, что общие файлы обычно используются с коллекциями
Наиболее распространенное использование для общих классы с коллекциями вроде связанные списки, хеш-таблицы, стеки, очереди, деревья и т.д., где такие операции, как добавление и удаление предметы из коллекции выполняются почти так же независимо от типа данных, являющихся сохранены.
Примеры, которые я видел, также подтверждают приведенное выше утверждение.
Может ли кто-нибудь дать действительное использование дженериков в реальном сценарии, который не содержит каких-либо коллекций?
Педантично, я думал о том, чтобы сделать пример, который не включает коллекции
public class Animal<T>
{
public void Speak()
{
Console.WriteLine("I am an Animal and my type is " + typeof(T).ToString());
}
public void Eat()
{
//Eat food
}
}
public class Dog
{
public void WhoAmI()
{
Console.WriteLine(this.GetType().ToString());
}
}
и "Animal типа Собака" будет
Animal<Dog> magic = new Animal<Dog>();
Вполне возможно, что Dog
наследуется от Animal
(Предполагая не общий вариант Animal
) Dog:Animal
Поэтому Dog
является Animal
Другим примером, о котором я думал, был BankAccount
. Это может быть BankAccount<Checking>
, BankAccount<Savings>
. Это может быть наилучшим образом Checking:BankAccount
и Savings:BankAccount
.
Есть ли какие-либо рекомендации, чтобы определить, следует ли нам идти с дженериками или с наследованием?