Почему класс селектора является внутренним Конструктором? - PullRequest
3 голосов
/ 26 января 2011

Я пытался наследовать класс Selector, потому что мне нужна функция, аналогичная ListBox, но это не ListBox.Я посмотрел на сигнатуру класса Selector, и это (http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.selector(v=vs.95).aspx)

public abstract class Selector : ItemsControl, 
ISupportInitialize

. Но проблема в том, что конструктор является внутренним. Поэтому невозможно извлечь из этого класса вне сборки (ListBox иComboBox находятся в этой сборке).

Я теперь извлечен из ListBox для достижения моей цели, но мой вопрос:

Почему класс селектора является внутренним Конструктором?

1 Ответ

0 голосов
/ 26 января 2011

Поскольку класс Selector равен abstract. Вы не можете создавать экземпляры абстрактных классов, и самый простой способ убедиться, что вы даже не можете сделать это по ошибке (обычным способом) - это не сделать конструктор доступным.

Я не вижу записи для конструктора в MSDN, но держу пари, что это, вероятно, конструктор protected, а не internal.

Но из того, что я вижу, ничто не мешает вам извлечь из Selector и создать собственную реализацию.

Изменить: Отражатель показывает, что конструктор действительно internal, поэтому не получим ...

...