Обобщённый интерфейс в C#
Обобщённый интерфейс - это интерфейс с параметром
типа. Параметр стоит в методах: что метод принимает и что
возвращает. Класс, который реализует интерфейс, подставляет
вместо T конкретный тип. Сам класс при этом остаётся
обычным: тип указан только у интерфейса.
Один интерфейс годится для разных типов. Хранилище
пользователей возвращает строку, хранилище очков - число.
По ключу 3 первое вернёт "user-3", второе -
30:
IStore<string> users = new UserStore();
IStore<int> scores = new ScoreStore();
Console.WriteLine(users.Find(3));
Console.WriteLine(scores.Find(3));
interface IStore<T>
{
T Find(int id);
}
class UserStore : IStore<string>
{
public string Find(int id) => $"user-{id}";
}
class ScoreStore : IStore<int>
{
public int Find(int id) => id * 10;
}
Опишите класс PriceStore через обобщённый интерфейс: по числовому ключу метод возвращает дробную цену. Для ключа 4 выведите цену 9.5.