2012-09-10 14 views
6

Possible Duplicate:
Inconsistent accessibilityC# Wracając Lista - Niezgodne Dostępność

Kiedy próbuję przekazujących List<MyType> w jednym z moich metod, aby coś wywołanie go z innej klasy, to daje mi następujący błąd:

Niekonsekwetne dostępność: typ powrót System.Collections.Generic.List<MyType> jest mniej dostępny niż metoda MyMethod(string, string, string, string, string, string, string, string, string, string, string)

Wszelkie pomysły na temat tego, co należy tutaj zrobić?

+0

Jaki jest ogólny typ Lista? Byłoby dobrze, gdybyś podał kod –

+0

To dlatego, że zapomniałem ogłosić klasę MyType publicznie. Dzięki. – user1314075

Odpowiedz

14

Cóż, prawie tak jak mówi. Prawdopodobnie masz numer List<SomeInternalClass> i wracasz z tego List<SomeInternalClass> z metody PUBLIC. Tak więc kompilator mówi ci, że nawet jeśli ludzie widzą tę metodę, NIE MOGĄ zobaczyć typu, który próbujesz zwrócić. Będziesz musiał uczynić swoją Metodę lub typ zarówno wewnętrzną, jak i publiczną.

Przykład:

internal class Foo { 
} 
public class Class1 
{ 
    public List<Foo> Bar() { 

    } 
} 
5

Dzieje się tak zwykle, gdy metoda zwraca rodzajowe listy MyType że jest mniej dostępny niż metody odsyłając je na przykład

public class TestClass { 
    public List<MyClass> MyMethod() { 
     return new List<MyClass>(); 
    } 
    private class MyClass { 
     public string Name {get;set;} 
    } 
}