В Visual Studio я могу щелкнуть правой кнопкой мыши по интерфейсу и выбрать «Реализовать интерфейс» или «Явно реализовать интерфейс».
public class Test : ITest
{
public string Id // Generated by Implement Interface
{
get { throw new NotImplementedException(); }
}
string ITest.Id // Generated by Implement Interface Explicitly
{
get { throw new NotImplementedException(); }
}
}
Единственное различие, которое я вижу между ними, заключается в том, что имя интерфейса добавляется к свойствам и методам интерфейса при их создании, если вы решите явно реализовать интерфейс.
Я нахожу, что это делает код немного более читабельным, так как я могу видеть, откуда взялся этот метод / свойство, однако имеет ли это какое-либо значение в том, как класс используется или компилируется? И действительно ли имеет значение, реализую ли я свои интерфейсы неявно или явно?