С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
20 / 20 / 12
Регистрация: 15.05.2012
Сообщений: 169
1

Обобщения в интерфейсах

24.02.2018, 02:28. Показов 706. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброй ночи. Что-то не могу сообразить простенькую задачку, подскажите пожалуйста.
Есть несколько типов классов Cloth,Car, Home. Они наследуют интерфейс, содержащий одну общую функцию Deserialize. Но почему-то у меня на моменте компиляции на вызов этой функции через приведение обобщенного типа выдается ошибка cannot resolve symbol Deserialize.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  
//Таких классов несколько, у каждого чтение данных по своему проходят
public class Cloth: MyConverter, IDeserializer<Cloth>
    {         
        public List<Cloth> Deserialize(Session session)
        {
            List<Cloth> list = new List<Cloth>();
        //тут код
            return list;
        }
    }
 
//Сам интерфейс
 public interface IDeserializer<T>
    {
        List<T> Deserialize(Session session);
    }
 
//В этом классе пытаюсь написать и получаю ошибку
 public class MyReader
   {
       Session session { get; set; }
 
       public MyReader(Session session)
        {
            this.session = session;
        }
        public List<T> GetList<T>() where T : IDeserializer<T>
        {
            return T.Deserialize(session);
        }
    }
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
24.02.2018, 02:28
Ответы с готовыми решениями:

Обобщения
Доброго времени суток. Решил немного поковырять С# и застрял на обобщениях. К сути. Имеется класс...

Интерфейс и обобщения
Коллеги, добрый день. Решил для себя добить эту тему до более-менее устойчивого понимания. Не...

шаблоны, обобщения, приведение типов
недавно столкнулся с интересной проблемой, с виду элементарная программа которую требовалось...

XML документация в интерфейсах, можно ли перенести ее на все классы, наследующие этот интерфейс
Здравствуйте! Если я задокументирую какой-либо интерфейс, то можно ли как-либо автоматически...

1
Эксперт .NET
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
24.02.2018, 08:58 2
skew, T — это тип, а не экземпляр класса.
1
24.02.2018, 08:58
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
24.02.2018, 08:58
Помогаю со студенческими работами здесь

Обобщения. Можно ли задать ограничение на 2 типа?
class A { void M&lt;T&gt;() where T: B, C // Можно ли как-то задать ограничение на 2 типа здесь? ...

Важны ли типы в интерфейсах
Прав ли я, что без разницы? Смотрите: в интерфейсе в методе - void, а в классе - string; в...

Использование обобщенного типа в классах и интерфейсах
Подчеркивает L&lt;T&gt; и выбивает &quot;Объявление параметра типа должно быть идентификатором, а не типом&quot;...

Вычислить математическое выражение описав функции решения в интерфейсах
здравствуйте. на си шарпе. помогите пожалуйста Создайте консольное приложение. Вычислите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru