Преобразование типов или обобщенные типы

Рейтинг: -1Ответов: 1Опубликовано: 11.03.2023

Не могу понять как применить обобщение или преобразование типов в этой ситуации

class СКЦ1
{
    public ДТЛ1 Дтл1;
    public List<ПРМ1> Прм;
}
class ДТЛ1
{
    public List<ПРМ1> Прм;
}
class ПРМ1
{
    public string Идн;
}
namespace WpfApp1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        СКЦ1 Скц1 = new СКЦ1();
        public MainWindow()
        {
            Скц1.Прм.Add(new ПРМ1 { Идн = "C1" });
            Скц1.Дтл1.Прм.Add(new ПРМ1 { Идн = "Д1" });
            InitializeComponent();
        }
        // две почти одинаковые функции
        // как слить в одну
        void СКЦ1_Прм_Згр()
        {
            СКЦ1 секция = Скц1;
            string temp = секция.Прм[0].Идн;
        }
        void ДТЛ1_Прм_Згр()
        {
            ДТЛ1 деталь = Скц1.Дтл1;
            string temp = деталь.Прм[0].Идн;
        }

        // Хотелось бы как то так
        void Прм_Згр<СД>(СД тип)
        {
            string temp = тип.Прм[0].Идн;
        }

    }
}

Ответы

▲ -1

Надо сделать интерфейс, у которого будет поле List<ПРМ>

interface ИИмеетПрм
{
    public List<ПРМ1> Прм { get; set; }
}

добавить реализацию этого интерфейса в классах СКЦ1, ДТЛ1. и в методе добавить where СД:ИИмеетПрм