2016-09-25 190 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

您是使用System.Collection命名空间中的List还是您定义的自定义类? –

+0

这是一个新类,不在form1.cs中 –

+1

你可以显示你的List类声明吗? –

回答

1

由于错误提示,您正尝试返回具有可见性修饰符的类的实例 - 例如,私人的,内部的,受保护的,公共的 - 比你的方法更难以访问。

由于您的方法public static List<Land> Lijst()是公开的,您应该检查List类的可见性。

在这种情况下,您只能从具有相同或更高可访问性的方法返回List实例。请检查this以了解有关使用辅助功能级别时的限制的更多信息:

检查this以了解C#中的辅助功能级别。

从更大的访问权限下:

市民:访问不受限制。

protected:访问权限仅限于从包含类派生的包含类或类型。

internal:访问权限仅限于当前程序集。

受保护的内部:访问仅限于当前程序集或从包含类派生的类型。

私有:访问被限制为包含类型。

你应该有地方定义为您的列表类:

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

也许它定义为内部或受保护的内部,甚至没有任何修饰,然后它是私有的,因此您收到此错误。

3

如果您有一个自定义List类,并且该方法本身的可访问性较差,则会发生此类错误。

考虑让您的自定义列表公开。这应该可以解决问题。