众所周知,使用java可以创建需要从另一个类扩展的一个或多个对象的方法;要做到这一点,你必须写:
public void method(Class<? extends class_name> Object_name)
我想知道C#中是否有相应的声明。有人知道吗?
答案 0 :(得分:1)
嗯,这是接受类型而不是对象,但你可以做一些与C#中的泛型方法略有相似的东西:
public void Foo<T>() where T : MyClass
然后您可以在方法中使用typeof(T)
。
如果您需要指定与类型T
兼容的实际对象,则可以将其作为T
类型的常规方法参数。
如果您需要更多内容,请根据更具体的要求更新您的问题。
答案 1 :(得分:1)
您可以使您的方法签名为Generic并使用约束
例如:
public static ObjectB GetObjectBFromInterface<T>(T item) where T : IObject
{
//Do some stuff
}
有关通用类型约束的详细信息,请参阅here
答案 2 :(得分:0)
您可以编写通用方法并使用type parameter constraint:
public void Method<T>(T obj) where T : YourBaseClass
{
// ...
}
答案 3 :(得分:0)
我多年没用Java编写代码了,所以我不熟悉<? extends
构造,但是,我想你是在询问如何将接口或抽象类传递给方法。
你可以使用泛型,但我认为你最好只使用基类
public void Method(BaseClass baseClassParamName)
{
baseClassParamName.HasAccessToMethodsDefinedInTheBase();
}