что предназначено реализацией по умолчанию интерфейса

Я видел этот оператор во многих documention образцах, как здесь

Этот класс является реализацией по умолчанию интерфейса "ISomeInterface"

что точно это означает?Спасибо

8
задан Asad 13 March 2010 в 09:10
поделиться

3 ответа

Это несколько вводит в заблуждение, поскольку интерфейс, по определению, не предоставляет никакой реализации.

Однако многие части фреймворка пытаются облегчить жизнь - поэтому они предоставляют метод, который принимает интерфейс, но также предоставляет перегрузку без параметров. Хорошим примером является List.Sort.

Документация здесь предполагает, что если вы используете метод, который обычно требует IComparer, но используете его через перегрузку, которая этого не делает, то вместо него будет использоваться "реализация по умолчанию".

Однако, это действительно "деталь реализации" классов, не связанных с самим интерфейсом. Я лично думаю, что это плохой выбор слов в документации, и должно быть что-то вроде:

Многие типы во фреймворке полагаются на общую реализацию этого интерфейса, предоставляемую классом Comparer.

Это, на мой взгляд, придаст более ясный смысл этому...

9
ответ дан 5 December 2019 в 14:02
поделиться

Это означает, что при вызове метода Sort без аргументов (без явного указания компаратора) он будет использовать эту реализацию по умолчанию.

3
ответ дан 5 December 2019 в 14:02
поделиться

Это означает, что данный класс реализует интерфейс. Он указывает на объект, который реализует сам интерфейс без каких-либо производных или унаследованных членов, а просто интерфейс. Это класс, который косвенно соответствует данному интерфейсу.

public interface IComparer {
    // Some members to implement here.
}

public class Comparer : IComparer {
    // IComparer members implementation
}
0
ответ дан 5 December 2019 в 14:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: