我有一個(很容易)的問題,似乎我無法找到如何做到這一點。我希望得到一些幫助。是否有抽象方法的顯式接口聲明?
我有兩個班,其是這樣的:
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