2013-06-07 1 views
1

Можем ли мы реализовать два интерфейса, имеющих ту же функцию в C#Реализация двух интерфейсов, имеющих ту же функцию в C#

interface TestInterface 
{ 
    public function testMethod(); 
} 

interface TestInterface2 
{ 
    public function testMethod(); 
} 

class TestClass implements TestInterface, TestInterface2 
{ 

} 

Возможно ли это?

Я нашел, что это не возможно в PHP here

+0

Да, используйте явный интерфейс http://msdn.microsoft.com/en-us/library/aa288461(v=vs.71).aspx –

+0

Sure , но вам придется префикс ваших вызовов методам, поскольку они wi иначе будет двусмысленным. Компилятор покажет вам, если вы все равно опустите имя интерфейса. – Gorgsenegger

ответ

5

Да, это возможно, вы должны квалифицировать имена методов с именами интерфейса:

class TestClass : TestInterface, TestInterface2 
    { 
     void TestInterface.testMethod() 
     { 

     } 

     void TestInterface2.testMethod() 
     { 
     } 
    } 

Хотя я не рекомендовал бы такой структура - это должно быть сделано только для академических интересов :-)

+0

[Ссылка на страницу msdn] (http://msdn.microsoft.com/en-us/library/aa288461 (v = vs.71) .aspx) Также в спецификации языка в разделе «13.4.1. Явные реализации элементов интерфейса 387 ", вы можете процитировать оттуда, а также страницу msdn. –

+0

Иногда у вас может не быть выбора :-) – Gorgsenegger

Смежные вопросы