Onu*_*nur 2 c# interface-design interface
与此问题类似:我如何需要一个方法参数来实现多个接口? 我想要一个方法参数来实现几个接口.
接口应以任意方式组合,我不想为每个有效组合创建接口.
想一个文件.有可能:
IReadableIWriteableIArchiveIGenerated...
如果我想表达一个参数需要是一个可写的,生成的存档我不想生成,IWritableGeneratedArchive因为有太多的组合,我想用它与一些我无法修改的现有类.
伪代码:
void WriteTo( IWritable + IGenerated + IArchive file)
{
//...
}
Run Code Online (Sandbox Code Playgroud)
我在这里找到的解决方案:我如何需要一个方法参数来实现多个接口?调整为C#.
积分归迈克尔迈尔斯所有
internal interface IF1
{
void M1();
}
internal interface IF2
{
void M2();
}
internal class ClassImplementingIF1IF2 : IF1, IF2
{
public void M1()
{
throw new NotImplementedException();
}
public void M2()
{
throw new NotImplementedException();
}
}
internal static class Test
{
public static void doIT<T>(T t) where T:IF1,IF2
{
t.M1();
t.M2();
}
public static void test()
{
var c = new ClassImplementingIF1IF2();
doIT(c);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
261 次 |
| 最近记录: |