-1

在我正在开发的一个建筑导航程序中,我的小组使用了一个由 Tile 对象组成的 Room 类。我想找到一种方法将房间的信息数据绑定到鼠标输入事件期间弹出的信息气泡中。

我正在尝试做的是通过 MouseEventArgs e,使用 MemberwiseClone() 制作一个与上面有 MouseEventHandler 的 Tile 具有相同信息的 Tile 对象,并通过这种方式收集 Room 的信息。

但是,由于 MemberwiseClone() 是受保护的方法,我需要派生 MouseEventArgs 类才能在类中使用它。但是,由于它是一个 WPF 页面,我不确定如何派生另一个类。

在这种情况下访问 MemberwiseClone() 方法的最佳方法是什么?

4

1 回答 1

0

如果你很难理解是什么protected意思,这里有一个简单的例子:

class Tile
{
    internal static void Test(Tile t)
    {
        object mc = t.MemberwiseClone();  // works fine!
    }
}

class TypeFromWhichTileDoesNotDerive
{
    internal static void Test(Tile t)
    {
        object mc = t.MemberwiseClone();  // illegal, will not compile
    }
}

如您所见,只有当您在类内(或在 的某个基类内)时,才能在对象上调用protected方法(继承自)。System.ObjectTiletTileTile

因此,如果您想利用该MemberwiseClone方法(一定要了解它提供了什么样的克隆,“浅”克隆),只需类中创建一个Tile调用. 然后类之外的其他代码可以调用您的方法(取决于您的方法是否为, , , )。MemberwiseCloneTileTileprivateinternalprotectedpublic

于 2013-09-07T20:25:10.087 回答