powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Set property of generic
6 сообщений из 6, страница 1 из 1
Set property of generic
    #38712615
Manonia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет,
скажите можно ли устанавливать свойства для обобщения? Например, у меня есть некий метод:

method<T>(string str)
{}

Я знаю, что T - это класс(ссылочный тип) и он содержит два свойства, которые я хочу в этом методе установить, ниже что мне собственно говоря надо:

public T method<T>(string str)
{
T.flag = true;
T.message = str;

return T;
}

Возможна ли такая реализация?
...
Рейтинг: 0 / 0
Set property of generic
    #38712682
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Manonia,

Код: 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.
using System;

namespace PropertyOfGenericApplication
{
    class MyBaseClass
    {
        public bool Flag { get; set; }

        public string Message { get; set; }

        public override string ToString()
        {
            return String.Format("Flag: {0}, Message: {1}", Flag, Message);
        }

    }

    class Program
    {
        static T Method<T>(string message) where T: MyBaseClass, new()
        {
            var instance = new T();

            instance.Flag = true;
            instance.Message = message;

            return instance;
        }

        static void Main()
        {
            var t = Method<MyBaseClass>("Hello, world!");

            Console.WriteLine(t);
            Console.ReadKey();
        }
    }
}
...
Рейтинг: 0 / 0
Set property of generic
    #38712763
Manonia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое! Но к сожалению, я не могу задать BaseClass, так как все эти классы генерятся из протокола... можно ли отражением решить это?
...
Рейтинг: 0 / 0
Set property of generic
    #38712766
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Manonia, подробнее ситуацию опишите.
...
Рейтинг: 0 / 0
Set property of generic
    #38712788
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ManoniaСпасибо большое! Но к сожалению, я не могу задать BaseClass, так как все эти классы генерятся из протокола... можно ли отражением решить это?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
method<T>(string str)
{}

// Я знаю, что T - это класс(ссылочный тип) и он содержит два свойства, 
// которые я хочу в этом методе установить, ниже что мне собственно говоря надо:

public T method<T>(string str)
{
   T t = new T();
   
   dynamic d = t;
   d.flag = true;
   d.message = str;

   return t;
}

// Возможна ли такая реализация?



Да, возможна. Но лучше использовать интерфейсы, а не базовый класс.
...
Рейтинг: 0 / 0
Set property of generic
    #38714608
Manonia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt, спасибо большое, сделала с dynamic, только для надежности там можно добавить try{} catch(RuntimeBinderException e){}, чтобы отловить случай, когда нет нужных свойств в объекте.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Set property of generic
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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