Неявный , когда Вы определяете свой интерфейс через участника на Вашем классе. Явный , когда Вы определяете методы в своем классе в интерфейсе. Я знаю, что сбивающие с толку звуки, но вот - то, что я имею в виду: IList.CopyTo
был бы неявно реализован как:
public void CopyTo(Array array, int index)
{
throw new NotImplementedException();
}
и явно как:
void ICollection.CopyTo(Array array, int index)
{
throw new NotImplementedException();
}
различие, являющееся, который неявно доступен через Ваш класс, который Вы создали, когда это снято как тот класс, а также когда его бросок как интерфейс. Явная реализация позволяет ему только быть доступным, когда брошено как сам интерфейс.
MyClass myClass = new MyClass(); // Declared as concrete class
myclass.CopyTo //invalid with explicit
((IList)myClass).CopyTo //valid with explicit.
я использую явный, прежде всего, для содержания реализации в чистоте, или когда мне нужны две реализации. Но независимо я редко использую его.
я уверен, что существует больше причин использовать его, используют его, что другие отправят.
Посмотрите следующее сообщение в этом потоке для превосходного обоснования позади каждого.
Это походит , GnuCash является хорошей программой для учета. Это может импортировать файлы QFX (один для каждой учетной записи) от, Ускоряются, и это попытается не сохранить дублирующиеся записи. Это также имеет регистр стиля чековой книжки, как Вы упомянули.
От их веб-сайта:
Разработанный, чтобы быть простым в использовании, все же мощным и гибким, GnuCash позволяет Вам отслеживать банковские счета, запасы, доход и расходы. Столь же быстрый и интуитивный для использования как регистр чековой книжки это основано на профессиональных принципах бухгалтерского учета для обеспечения сбалансированных книг и точных отчетов.