Я не совсем уверен, как задать этот вопрос. Предположим, у меня есть класс, которому требуется доступ к определенным свойствам элемента управления (например, Visible и Location). Возможно, я хочу использовать тот же класс для доступа к свойствам другого элемента с таким же именем, но класс может не быть производным от Control. Поэтому я попытался сделать интерфейс:
public interface IThumbnail {
bool Visible { get; set; }
int Height { get; set; }
int Width { get; set; }
Image Image { get; set; }
Point Location { get; set; }
event EventHandler Click;
}
Обратите внимание, что, например, PictureBox реализует этот интерфейс. Однако, поскольку определение класса не говорит , что оно реализует IThumbnail, я не могу привести PictureBoxes к IThumbnails - я получаю InvalidCastException во время выполнения. Но почему CLR не может «выяснить», что PictureBox действительно реализует IThumbnail (он просто не говорит об этом прямо).
Кроме того, что я должен сделать, чтобы справиться с этой ситуацией? Я хочу получить доступ к некоторым свойствам PictureBox, не сообщая моему классу, что он изменяет PictureBox.
Спасибо, Сэм
PS- Я новичок в программировании интерфейса, поэтому я прошу прощения, если это глупо q.