嘿,我想知道我想要做甚麼可能嗎?在代碼中的註釋應該給和想法是什麼,我想才達到:)C#泛型和繼承問題
interface ITest<T> {
T t { get; }
bool DoTest();
}
public abstract class Test<T> : ITest<T> {
public Test (T nt) {
this.t = nt;
}
public Test() {
}
public T t {
get;
private set;
}
public abstract bool DoTest();
}
public class STest : Test<string> {
public override bool DoTest() {
return true;
}
}
public class ITest : Test<int> {
public override bool DoTest() {
return true;
}
}
public class TestTest {
// I don't want to specify type here, I'd like TestTest to be able to have
// either a ITest or a STest. But for this class it should not matter.
// I just want to use DoTest() later on. No matter what
// specialication of Test this is.
Test myTest;
}
這可能是一個設計問題,我願意重新考慮,如果是:)
呀。當你可以稱之爲'StringTest' /'IntTest'時,也不建議調用'STest' /'ITest',它的可讀性會提高一百萬倍。 – Timwi 2010-09-12 21:36:00
我不認爲特定的命名約定是這裏最重要的方面。 – 2010-09-12 21:37:34
@Ondrej:沒有人說它是*最重要的。但是,任何使代碼更易於理解的代碼只會使OP受益。 – 2010-09-12 23:23:26