我有一个我创建的泛型类:
public abstract class MyClass<T>
{
public T Model
{
get;
protected set;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中的某些时候,我想用MyClass类型做任何事情.就像是:
private void MyMethod(object param)
{
myClassVar = param as MyClass;
param.Model....etc
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?或者我是否需要使MyClass成为某个子类(MyClassBase)或实现接口(IMyClass)?
Yur*_*kiy 13
我相信你需要的是使MyMethod方法通用并在其类型参数上添加约束:
interface IMyInterface
{
void Foobar();
}
class MyClass<T>
{
public T Model
{
get;
protected set;
}
}
private void MyMethod<T>(MyClass<T> param) where T : IMyInterface
{
param.Model.Foobar();
}
Run Code Online (Sandbox Code Playgroud)