W Visual Studio mogę kliknąć interfejs prawym przyciskiem myszy i wybrać opcję Implementuj interfejs lub Implementuj interfejs jawnie.
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(); }
}
}
Jedyną różnicą, jaką widzę między nimi, jest to, że nazwa interfejsu jest dodawana do właściwości i metod interfejsu, gdy są tworzone, jeśli zdecydujesz się na implementację interfejsu w sposób jawny.
Uważam, że sprawia, że kod jest nieco bardziej czytelny, ponieważ widzę, skąd pochodzi ta metoda / właściwość, ale czy ma to jakikolwiek wpływ na sposób użycia lub kompilacji klasy? Czy to naprawdę ma znaczenie, jeśli implementuję moje interfejsy w sposób dorozumiany lub jawny?