2

如何向密封的 Arc 类添加两个新属性。我想用一个 double 属性来扩展这个类来保存一个 double 值和一个字符串属性来保存对象的名称。我的第一次尝试是通过 Tag 属性,但这只能保存双精度值或对象名称。

问题是我创建了一个包含 43 个圆弧对象的新用户控件,当鼠标进入圆弧时,另一个控件会显示输入段的值和名称。所以每个弧都使用相同的 MouseEntered 函数,我想通过“对象发送者”获取信息。

我希望任何人都有一个好主意。

4

3 回答 3

5

您可以使用复合模式。

class SuperArc
{
   Arc Arc { get; set; }
   // other properties.
}
于 2012-09-20T14:24:53.640 回答
3

你不能。它是密封的。任何一个:

  1. 创建一个包含作为Arc属性的新类。
  2. 将元组或其他对象存储在Arc.Tag.
  3. 用属性装饰弧线

对于您的特定问题,我建议上面的#2 或存储一个Dictionary<Arc, blahblahblah>Dictionary<string, blahblahblah>(按名称)并查找您需要的信息。#1 需要大量开销来包装绘图所需的所有方法和属性,而且可能比它的价值更麻烦。

于 2012-09-20T14:24:08.450 回答
0

您不能扩展密封类。

尝试创建自己的类并将 Arc 作为类成员,并公开此成员函数。

最好的祝福。

于 2012-09-20T14:24:57.010 回答