powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передать List<T>
6 сообщений из 6, страница 1 из 1
Передать List<T>
    #38996248
Qwe.Qwe1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть несколько классов и я создаю несколько списков объектов этих классов. Потом хочу передавать эти списки в другой класс, но как это сделать? Вот есть метод для передачи, не пойму, как присвоить значение...
Код: c#
1.
2.
3.
4.
5.
List<Class1> list1 = new List<Class1>();
List<Class2> list2 = new List<Class2>();
List<Class3> list3 = new List<Class3>();

form.SetData(list2);



Код: c#
1.
2.
3.
4.
5.
6.
List<T> data= ... ???

public void SetData<T>(List<T> data)
{
    this.data = data;
}
...
Рейтинг: 0 / 0
Передать List<T>
    #38996256
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если Class1-Class3 не имеют общего базового класса или интерфейса, то тогда List<object>
...
Рейтинг: 0 / 0
Передать List<T>
    #38996257
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qwe.Qwe1,
Сделайте класс, в котором находится SetData<T> также дженериком.
...
Рейтинг: 0 / 0
Передать List<T>
    #38996262
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
class Form<T> where T : BaseClass // где BaseClass - класс, от которого наследуются Class1, Class2 и Class3
{
    public void SetData<T>(List<T> data)
    {
        Value = data;
    }

    public List<T> Value {get;private set;}
}
...
Рейтинг: 0 / 0
Передать List<T>
    #38996422
Qwe.Qwe1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Классы не имеют общего базового класса или интерфейса. Как передать object? И как потом в классе MyForm получить доступ к членам ClassN?
Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
namespace TestListT
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Class1> list1 = new List<Class1>();
            list1.Add(new Class1(1, "Apple"));
            list1.Add(new Class1(2, "Samsung"));
            list1.Add(new Class1(3, "LG"));

            List<Class2> list2 = new List<Class2>();
            list2.Add(new Class2(10, "Microsoft", "USA"));
            list2.Add(new Class2(15, "Yandex", "Russia"));
            list2.Add(new Class2(20, "Sony", "Japan"));

            MyForm form = new MyForm();
            form.SetData(list1);
        }
    }

    class MyForm
    {
        List<object> data;

        public void SetData(List<object> data)
        {
            this.data = data;
        }        
    }

    class Class1
    {
        public int ID { get; set; }
        public string Name { get; set; }

        public Class1(int id, string name)
        {
            ID = id;
            Name = name;
        }
    }

    class Class2
    {
        public int Num { get; set; }
        public string Name { get; set; }
        public string Address { get; set; }

        public Class2(int num, string name, string address)
        {
            Num = num;
            Name = name;
            Address = address;
        }
    }
}
...
Рейтинг: 0 / 0
Передать List<T>
    #38996464
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qwe.Qwe1,

Насколько я вижу из примера, проблема в классе MyForm. Одним и тем же методом кушать разные по сути типы - не есть хорошо. Либо сделай два метода SetData(List <class1>), SetData(List<class2>), либо вообще разные формы для отображения
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передать List<T>
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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