我有一个(很容易)的问题,似乎我无法找到如何做到这一点。我希望得到一些帮助。是否有抽象方法的显式接口声明?
我有两个班,其是这样的:
public class FileParameters { ... }
public abstract class File {
...
public abstract FileParameters Params { get; }
}
来自两类我有一个派生特殊版本:
public class SpecialFileParameters { ... }
public abstract class SpecialFile {
...
private SpecialFileParameters params;
public override FileParameters Params { get { return params; } }
}
当我想用我不得不将目光投向SpecialFileParameters首先,例如:
((SpecialFileParameters)SpecialFileObject.Parameters).DoSomething();
这是相当讨厌的。我想有基本相同的语法与接口
public abstract class SpecialFile {
...
private SpecialFileParameters params;
private override FileParameters File.Params { get { return params; } }
public new SpecialFileParameters Params { get { return params; } }
}
但是这样我得到一个编译器错误:“文件”在显式接口声明不是一个接口。有没有其他方法可以做到这一点?
一些进一步的信息:
- 我不能改变的基类,只有我的特别班
- 我真的需要2个特别的派生类,一种是用C#编写,另外在C++/CLI。如果让它工作的“技巧”在C#和C++ CLI之间是不同的,请让我知道。
感谢您的帮助(和耐心,我想^^),
@Ben - 现在好多了? – 2011-04-13 05:11:07
是的。许多。绝对。 – 2011-04-13 05:12:22