Нужен способ использовать частные методы класса из другого класса - PullRequest
0 голосов
/ 19 января 2012

У меня есть класс "A", который содержит некоторые методы, которые мне нужно использовать в другом классе (класс "B"), который содержит экземпляр класса A. Эти методы в классе «A» могут быть внутренними, потому что у меня есть два класса в одной сборке, но мне нужно, чтобы они были частными, потому что класс «B» - единственный класс, который я хочу использовать методы. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 19 января 2012

Вы всегда можете пометить методы в классе A как внутренние, а затем установить флаг InternallyVisibleTo в файле сведений о сборке?

0 голосов
/ 19 января 2012

Если у вас есть ClassB: ClassA (таким образом, производный класс), вы можете объявить эти методы как protected, поэтому они доступны только для производных классов.

Пример:

public class ClassA
{
    protected void FooA() { Console.WriteLine("A"); }
    internal void FooB() { Console.WriteLine("B"); }
}

public class ClassB : ClassA
{
    public void Foo() { FooA(); }
}

public class ClassC
{
    public void Foo()
    {
        ClassA classA = new ClassA();
        classA.FooA(); // Error, because you don't see it
        classA.FooB(); // OK
    }
}
...