как не выставить класс ни одному другому классу, кроме одного?(С #) - PullRequest
1 голос
/ 16 июля 2011

У меня есть пространство имен ABC, в котором есть один класс форм F и обычный класс C. Теперь у меня есть другое пространство имен XYZ со многими различными классами.Теперь F используется только из C и больше нигде в программе.Все остальные классы используют C, а не F.

В visual studio (2010) из классов в пространстве имен XYZ я вижу F, перечисленный в раскрывающемся списке intellisense (поскольку я ссылался на ABC для использования C).Как я могу предотвратить это? Я хочу только C там.Любой метод будет достаточно, пока я могу использовать C из XYZ.

Спасибо.

Ответы [ 2 ]

5 голосов
/ 16 июля 2011

Можете ли вы сделать F вложенным классом внутри вашего класса C?

public class C
{
    public C()
    { }

    class F : Form
    {
        ...
    }
}

Я не уверен, что это работает для вашего сценария, но это решило бы проблему Intellisense, удовлетворяя перечисленным требованиямвыше.

1 голос
/ 16 июля 2011

Есть ли причина, по которой вы не можете поместить его в другое пространство имен, чтобы скрыть его от других классов, например, пространство имен ABC.Forms?

Если бы это было что-то отличное от класса формы (следовательно, являетсячастичный класс, если вы используете последнюю версию .net) - я бы сказал, почему бы не сделать его внутренним классом для C - но я сомневаюсь, что это было бы здорово с классом формы.

Я бы пошел сизменение пространства имен.

...