2016-09-25 6 views
0

So, hier ist mein Code:C# Rückgabetyp Fehler

public class landen 
{ 
    public static List<Land> Lijst() 
    { 
     List<Land> lijst = new List<Land> 
     { 
      new Land("AF,AFG,Afghanistan,Islamitische Republiek AFghanistan,Kaboel,0093"), 
      new Land("AL,ALB,Albanië,Republiek Albanië, Tirana,00355"), 
      new Land("DZ,DZA,Algerije,Democratische Volksrepubliek Algerije,Algiers,00213") 
     }; 
     return lijst; 
    } 
} 

mein Fehler ist:

Fehler CS0050 Uneinheitliche Zugänglichkeit: Rückgabetyp 'Liste' ist weniger zugänglich als Methode ‚landen.Lijst() '

+0

Verwenden Sie List aus System.Collection-Namespace oder ist es eine benutzerdefinierte Klasse, die von Ihnen definiert wird? –

+0

Dies ist eine neue Klasse, nicht in der Form1.cs –

+1

Können Sie Ihre List-Klasse-Deklaration anzeigen? –

Antwort

1

Wie der Fehler angibt, versuchen Sie, eine Instanz einer Klasse zurückzugeben, die über einen Sichtbarkeitsmodifikator verfügt - z. privat, intern, geschützt, öffentlich - das ist weniger zugänglich als deine Methode.

Da Ihre Methode public static List<Land> Lijst() öffentlich ist, sollten Sie die Sichtbarkeit der List-Klasse überprüfen.

Sie können Instanzen von List nur in diesem Fall von Methoden zurückgeben, die die gleiche oder höhere Zugänglichkeit haben. Überprüfen Sie this, um mehr über die Einschränkungen bei der Verwendung von Barrierefreiheitsebenen zu erfahren:

Überprüfen Sie this, um die Ebenen der Barrierefreiheit in C# zu kennen.

Von größerer Zugriffsberechtigung zu niedriger:

public: Zugang ist nicht eingeschränkt.

geschützt: Der Zugriff ist auf die enthaltene Klasse oder die von der enthaltenden Klasse abgeleiteten Typen beschränkt.

intern: Der Zugriff ist auf die aktuelle Baugruppe beschränkt.

Geschützt intern: Der Zugriff ist auf die aktuelle Baugruppe oder auf Typen beschränkt, die von der enthaltenen Klasse abgeleitet sind.

privat: Der Zugriff ist auf den enthaltenden Typ beschränkt.

Sie sollten Ihre List-Klasse irgendwo definiert haben:

**public** class List 
{ 
... 
} 

es definiert als interne oder geschützte interne oder gar keinen Modifikator hat und dann ist es privat und damit Ihr diesen Fehler erhalten Vielleicht.

3

Diese Art von Fehler tritt auf, wenn Sie eine benutzerdefinierte List-Klasse haben, und es ist weniger zugänglich als die Methode selbst.

Erwägen Sie, Ihre benutzerdefinierte Liste öffentlich zu machen. Das sollte das Problem lösen.