正如你所有人都知道使用java,可以創建需要從另一個類擴展的一個或多個對象的方法;要做到這一點你必須寫:作爲參數傳遞一個從C#中的類派生的對象
public void method(Class<? extends class_name> Object_name)
我想知道在C#中是否有相應的語句。有人知道嗎?
正如你所有人都知道使用java,可以創建需要從另一個類擴展的一個或多個對象的方法;要做到這一點你必須寫:作爲參數傳遞一個從C#中的類派生的對象
public void method(Class<? extends class_name> Object_name)
我想知道在C#中是否有相應的語句。有人知道嗎?
嗯,在接受型而不是對象,但你可以做在C#泛型方法稍有類似的東西:
public void Foo<T>() where T : MyClass
然後您可以在方法內使用typeof(T)
。
如果需要指定一個實際對象與T
類型兼容,你可以有作爲T
類型的正常方法參數。
如果您需要更多,請更新您的問題與更具體的要求。
你可以寫一個通用的方法,並使用一個type parameter constraint:
public void Method<T>(T obj) where T : YourBaseClass
{
// ...
}
我沒有用Java編碼多年,所以我不熟悉<? extends
構造,但是,我想你是問如何將一個接口或抽象類傳遞給一個方法。
你可以使用仿製藥,但我認爲你會更好只使用基類
public void Method(BaseClass baseClassParamName)
{
baseClassParamName.HasAccessToMethodsDefinedInTheBase();
}
,你可以讓你的方法簽名通用和使用的約束
如:
public static ObjectB GetObjectBFromInterface<T>(T item) where T : IObject
{
//Do some stuff
}
有關通用類型約束條件的更多信息,請參閱here