开发者

Adding custom property to the rectangle class

开发者 https://www.devze.com 2023-04-02 11:11 出处:网络
I need to add a custom property to the Rectangle class. I tried to subclass the Rectangle class but it didn\'t work. Is there开发者_开发问答 a way to do that. ThanksYou can\'t inherit from System.Draw

I need to add a custom property to the Rectangle class. I tried to subclass the Rectangle class but it didn't work. Is there开发者_开发问答 a way to do that. Thanks


You can't inherit from System.Drawing.Rectangle, because it's not a class, it's a struct. What you can do is to create your own class (or struct) that wraps Rectangle, something like:

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

Or you could hide the Rectangle and provide methods and properties that mirror those of Rectangle that call them.


You can not extend Rectangle as it's a value type. In my opinion you have 2 choices:

  1. Extension method. Something like this:

    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 ;
        }
    }
    

    The type of a property is unknown to me so I put it like an object, you need to substitute it with the type you need, naturally.

  2. Wrap Rectangle into your custom class.

0

精彩评论

暂无评论...
验证码 换一张
取 消