始终使用不同的返回类型覆盖功能

时间:2011-11-08 11:43:55

标签: vb.net oop

我有一个名为ViewerElement的MustInherit类,从中派生类如ViewerLine,ViewerImage等。

然后,在主程序中我有一系列不同的元素(图像,线条等)。我想做的事情如下:

Dim NewElement As ViewerElement
For Each Element As ViewerElement In Elements
    If blabla Then
        NewElement = Element.Clone()
        Exit For
    End If
Next
Elements.Add(NewElement)

我迫切希望实现这个克隆方法而不会出错。该怎么办呢?

提前多多感谢。

1 个答案:

答案 0 :(得分:2)

您应该ViewerElement实施IClonable界面 然后,在Clone()方法中,您应创建一个新的ViewerElement对象,复制所有属性值(或根据您的需要更改它们)。
Clone()方法必须返回一个可以与您的类型一起转换的对象;然后由你决定哪些值假设属性,wchis状态有每个内部变量。

一个例子(用C#编写)

public class ViewerElement : ICloneable
{
    private int a = 0;
    private string b = "";

    public ViewerElement(int a, string b)
    {
        this.a = a;
        this.b = b;
    }

    public object Clone()
    {
        return new ViewerElement(a, b);
    }
}