В момента уча за моя изпит MS 70-515. В една от практиките авторът прилага интерфейс както имплицитно, така и експлицитно. Изричното изпълнение просто извиква имплицитното изпълнение. Изричното изпълнение е просто посочено без обяснение.
Има ли смисъл да има както имплицитна, така и експлицитна реализация на интерфейса? Мисля, че изричното внедряване е излишно (в този случай).
public class PassTextBox : TextBox, IScriptControl
{
public virtual IEnumerable<ScriptDescriptor> GetScriptDescriptors()
{
var descriptor = new ScriptControlDescriptor(
"AjaxEnabled.PassTextBox", ClientID);
// ...
return new ScriptDescriptor[] {descriptor};
}
IEnumerable<ScriptDescriptor> IScriptControl.GetScriptDescriptors()
{
return GetScriptDescriptors();
}
}
Между другото, изглежда, че кодът работи добре без изричната реализация, тъй като имплицитната реализация е публична.
Отнася се за Комплект за обучение на MCTS за самостоятелно обучение (изпит 70-515): Разработка на уеб приложения с Microsoft . NET Framework 4Глава 9, Урок 2, Практика 3, за да бъдем точни.