我需要为Rectangle类添加一个自定义属性。我试图继承Rectangle类,但它没有用。有没有办法做到这一点。感谢
答案 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,因为它是值类型。 在我看来,你有两个选择:
扩展方法。像这样:
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
,你需要用你需要的类型替换它,自然。
将矩形包装到自定义类中。