2016-09-25 25 views
0

は、だからここに私のコードです:C#の戻り値の型エラー

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; 
    } 
} 

私のエラーは、次のとおりです。

エラーCS0050一貫性のないアクセス:戻り値の型 'リスト'「の方法よりも少ないアクセス可能ですlanden.Lijst () '

+0

List from System.Collection名前空間を使用していますか、それともあなたが定義したカスタムクラスですか? –

+0

これは新しいクラスで、form1.csにありません –

+1

Listクラスの宣言を表示できますか? –

答えて

1

エラーが表示されているため、可視性変更機能を持つクラスのインスタンスを返そうとしています。内部、保護された、公開されている - あなたの方法よりもアクセスしにくい。

public static List<Land> Lijst()のメソッドが公開されているので、Listクラスの可視性をチェックする必要があります。

この場合、リストのインスタンスは、同じかそれ以上のアクセシビリティを持つメソッドからのみ返すことができます。アクセシビリティレベルを使用する際の制限事項の詳細については、thisを参照してください。

thisを確認して、C#のアクセシビリティレベルを確認してください。下へのより大きなアクセス権限から

公共:アクセスが制限されていません。

protected:アクセスは、含まれるクラスから派生した1つ以上のクラスに限定されます。

内部:アクセスは現在のアセンブリに限定されています。

保護内部:アクセスは、現在のアセンブリまたは包含クラスから派生した型に限定されます。

プライベート:アクセスはそのタイプに限定されます。

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

は多分内部のように定義または内部の保護、あるいは任意の修飾子を持っていないし、それはプライベートですので、あなたは、このエラーを受信して​​います:

はあなたのListクラスのようにどこかで定義されている必要があります。

3

この種類のエラーは、カスタムのListクラスがあり、メソッド自体よりもアクセスしにくい場合に発生します。

カスタムリストを公開することを検討してください。それは問題を解決するはずです。