2014-03-02 59 views

回答

1

您可以添加一個接口,既ITwo並從中IOne繼承。

public void SomeFunction(INumber argument) 
{   
} 
public interface INumber 
{ 
} 
public interface ITwo : INumber 
{ 
} 
public interface IOne : INumber 
{ 
} 

或使用通用:

public void SomeFunction<T>(T argument) where T : IOne, ITwo 
{ 
} 
+1

你的第一個解決方案並不能保證'argument'實現在同一時間兩個接口。實際上,它可能不會實現其中之一!您的第二個解決方案很好,但:-) – dasblinkenlight

4

你可以這樣說:

interface IOne {void Hello();} 
interface ITwo {void World();} 

static void Foo<T>(T arg) where T : IOne, ITwo { 
    arg.Hello(); 
    arg.World(); 
}