Добавление пользовательского свойства в класс прямоугольника - PullRequest
0 голосов
/ 03 сентября 2011

Мне нужно добавить пользовательское свойство в класс Rectangle.Я пытался создать подкласс класса Rectangle, но он не работал.Есть способ сделать это.Спасибо

Ответы [ 2 ]

4 голосов
/ 03 сентября 2011

Вы не можете наследовать от System.Drawing.Rectangle, потому что это не класс, это struct.Что вы можете сделать, это создать свой собственный класс (или struct), который охватывает Rectangle, что-то вроде:

class MyRectangle
{
    public Rectangle ActualRectangle { get; set; }
    public SomeType AdditionalProperty { get; set; }
}

Или вы можете скрыть Rectangle и предоставить методы и свойства, которые отражают этииз Rectangle, которые их называют.

3 голосов
/ 03 сентября 2011

Вы не можете расширять Rectangle, так как это тип значения.На мой взгляд, у вас есть 2 варианта:

  1. Метод расширения.Примерно так:

    public static class Extensions
    {
        static object myporpertyvalue = null;
        public static void SetMyProperty(this Rectangle rect, object value) 
        {
            myporpertyvalue = value;
        }
    
        public static object GetMyProperty(this Rectangle rect) 
        {
           return myporpertyvalue ;
        }
    }
    

    Тип свойства мне неизвестен, поэтому я поставил его как object, вам нужно заменить его на нужный вам тип, естественно.

  2. Оберните прямоугольник в свой пользовательский класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...