Определение использования определенного интерфейса - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет, нужна помощь. есть такой код
interface IDevice
{}
 
interface IGroup
{}
 
interface ITag
{}
 
public struct Device : IDevice
{
   IGroup Groups;
...
   public Device(IGroup groups)
   {
      Groups = groups;
   }
}
 
public struct Group : IGroup
{
...
}
 
public struct Tag : ITag, IGroup
{
...
}
Внутреннею реализация структур вам не нужно знать, у интерфейсов ее нет! Для динамической работы нужно реализовать определения какой структурой я пользуюсь. для примера
IDevice groupDevice = new Device(new Group()); //Может быть так
IDevice tagDevice = new Device(new Tag()); // Может быть и так
так вот нужно знать каким образом(адекватным способом, а без всякий колен) можно определить какую структуру я использую

Решение задачи: «Определение использования определенного интерфейса»

textual
Листинг программы
    public interface IDevice
    {
        Type DeviceType { get; }
    }
 
    public interface IGroup
    { }
 
    public interface ITag
    { }
 
    public struct Device : IDevice
    {
        IGroup Groups;
 
        public Device(IGroup groups)
        {
            Groups = groups;
        }
 
        public Type DeviceType
        {
            get
            {
                return this.Groups.GetType();
            }
        }
    }
 
    public struct Group : IGroup
    {
    }
 
    public struct Tag : ITag, IGroup
    {
 
    }
 
 
    public class Example
    {
        public Example()
        {
            IDevice groupDevice = new Device(new Group()); //Может быть так
            IDevice tagDevice = new Device(new Tag()); // Может быть и так
 
            if (groupDevice.DeviceType == typeof(Group))
            {
 
            }
            if (groupDevice.DeviceType == typeof(Tag))
            {
 
            }
            if (tagDevice.DeviceType == typeof(Group))
            {
 
            }
            if (tagDevice.DeviceType == typeof(Tag))
            {
 
            }
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы