powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как перейти к универсальному Type T?
6 сообщений из 6, страница 1 из 1
Как перейти к универсальному Type T?
    #38212686
Konstantin Dav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, есть у меня такой вот смешной класс, вся прелесть которого - в том, что его можно инициализировать
строкой с предварительно сохраненными данными.

Код: 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.
  public class DataClass
  {
    private List<User> userList = null; 

    public DataClass()
    {
      userList = new List<User>();
    }

    public DataClass( string savedList )
    {
      XmlSerializer serializer = new XmlSerializer( typeof(List<User>) );
      Object o;
      using (TextReader reader = new StringReader(savedList))
      {
        o = serializer.Deserialize(reader);
      }
      userList = (List<User>) o;
    }

    public List<User>  UserList
    {
      get { return userList;  }
      set { userList = value; }
    }
  }


И тут я подумал: а какого черта у меня код повторяется один и тот же для разных типов данных?
Нельзя ли от типа User перейти к универсальному Type T?
Только пока не смог придумать, как это сделать.
Может, вы меня натолкнете на правильный путь?
Спасибо.
...
Рейтинг: 0 / 0
Как перейти к универсальному Type T?
    #38212710
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное как-то так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 public class DataClass<T>
    {
        public DataClass()
        {
            UserList = new List<T>();
        }

        public DataClass(string savedList)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(List<User>));
            Object o;
            using (TextReader reader = new StringReader(savedList))
            {
                o = serializer.Deserialize(reader);
            }
            UserList = (List<T>)o;
        }

        public List<T> UserList { get; set; }
    }
...
Рейтинг: 0 / 0
Как перейти к универсальному Type T?
    #38212715
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winsky!,
typeof(List<User>) typeof(T)
...
Рейтинг: 0 / 0
Как перейти к универсальному Type T?
    #38212718
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу. typeof(List<T>)
...
Рейтинг: 0 / 0
Как перейти к универсальному Type T?
    #38212734
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konstantin Dav,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public static T Deserialize<T>(Stream stream)
        {
            var serializer = new XmlSerializer(typeof(T));
            using (var reader = new StreamReader(stream))
            {
                return (T)serializer.Deserialize(reader);
            }
        }
...
Рейтинг: 0 / 0
Как перейти к универсальному Type T?
    #38212741
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

ну да, провтыкал :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как перейти к универсальному Type T?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]