2011-07-22 23 views
2

正如你所有人都知道使用java,可以創建需要從另一個類擴展的一個或多個對象的方法;要做到這一點你必須寫:作爲參數傳遞一個從C#中的類派生的對象

public void method(Class<? extends class_name> Object_name) 

我想知道在C#中是否有相應的語句。有人知道嗎?

回答

1

嗯,在接受而不是對象,但你可以做在C#泛型方法稍有類似的東西:

public void Foo<T>() where T : MyClass 

然後您可以在方法內使用typeof(T)

如果需要指定一個實際對象T類型兼容,你可以有作爲T類型的正常方法參數。

如果您需要更多,請更新您的問題與更具體的要求。

0

你可以寫一個通用的方法,並使用一個type parameter constraint

public void Method<T>(T obj) where T : YourBaseClass 
{ 
    // ... 
} 
0

我沒有用Java編碼多年,所以我不熟悉<? extends構造,但是,我想你是問如何將一個接口或抽象類傳遞給一個方法。

你可以使用仿製藥,但我認爲你會更好只使用基類

public void Method(BaseClass baseClassParamName) 
{ 
    baseClassParamName.HasAccessToMethodsDefinedInTheBase(); 
} 
1

,你可以讓你的方法簽名通用和使用的約束

如:

public static ObjectB GetObjectBFromInterface<T>(T item) where T : IObject 
{ 
    //Do some stuff 
} 

有關通用類型約束條件的更多信息,請參閱here

相關問題