Можно ли в C # реализовать член интерфейса, используя член с другим именем, как это можно сделать в VB.NET?

Хорошо, это вопрос, который я задаю не для демонстрации хороших методов кодирования (на самом деле это можно было бы считать плохой практикой), а скорее в отношении того, «может ли» это быть сделано вообще.

Тем не менее, в VB.NET вы реализуете такой интерфейс ...

Sub SomeInterfaceMember()
    Implements ISomeInterface.SomeInterfaceMember
End Sub

, тогда как в C # вы делаете это явно, как это (который может быть вызван только через интерфейс) ...

void ISomeInterface.SomeInterfaceMember(){}

или, проще говоря, неявно, как это (в этом случае вы можете вызвать его напрямую или через интерфейс) ...

void SomeInterfaceMember(){} // <-- This name matches the interface member

Однако, что касается VB, вы также можете сделать это, используя любое имя для члена .. .

Sub SomeRandomMemberName() // <-- This name doesn't match the interface member
    Implements ISomeInterface.SomeInterfaceMember
End Sub

Другими словами, метод, который обрабатывает реализацию, может иметь совершенно другое имя, чем имя члена интерфейса.

Мне просто интересно, есть ли что-то подобное в C #. (Да, Я знаю, что могу просто создать явный интерфейс, а затем получить к нему доступ через другой член «оболочки» с другим именем, которое просто делегирует ему полномочия, но в VB.NET вы делаете и то, и другое одним методом.)

сделать?

Mark

13
задан MarqueIV 25 September 2013 в 03:37
поделиться