Определение использования определенного интерфейса - 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)) { } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д