将自定义属性添加到矩形类

时间:2011-09-03 18:20:52

标签: c# .net winforms

我需要为Rectangle类添加一个自定义属性。我试图继承Rectangle类,但它没有用。有没有办法做到这一点。感谢

2 个答案:

答案 0 :(得分:4)

您无法继承System.Drawing.Rectangle,因为它不是一个类,而是一个struct。你可以做的是创建你自己的包裹struct的类(或Rectangle),例如:

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

或者您可以隐藏Rectangle并提供与Rectangle调用它们的方法和属性相对应的方法和属性。

答案 1 :(得分:3)

您不能扩展Rectangle,因为它是值类型。 在我看来,你有两个选择:

  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. 将矩形包装到自定义类中。