2012-10-24 40 views
0

我一直是一个vb开发者多年,但只是开始使用c#。不一致的可访问性错误(c#)

我不确定这个错误意味着什么或如何解决它。我之前的所有搜索都没有得到任何帮助。你们能帮忙吗?

这里的错误:

可访问性不一致:参数类型 'ServeArticle.ReturnStyle' 大于法 'ServeArticle.DisplayArticle(整型,字符串,ServeArticle.ReturnStyle)'

这里是我的代码不易进入:

public partial class ServeArticle : BaseWebPage 
{ 

    protected mArticle objArticle; 
    protected string strHTML; 

    enum ReturnStyle:int 
    { 
     XML_SingleArticle = 4, 
     XML_MultiArticle = 5 
    }; 


    protected void Page_Load(object sender, EventArgs e) 
    { 
      DisplayArticle(123, 'p123', (ReturnStyle)intReturnStyle); 
     } 

    } 


    protected void DisplayArticle(int intPublisherID, string strPublisherKey, ReturnStyle intReturnStyle) 
    { 
     try 
     {..... 

任何帮助非常感谢!

谢谢。

回答

3

ReturnStyle枚举是private,但它必须是protectedpublic因为DisplayArticle方法是protected。它必须是至少与您的方法一样可访问。

+0

这样一个简单的解决方案! Thankk你很多:) – wotney

1

默认情况下,enum ReturnStyleprivate,因此您不能将其用作DisplayArticle方法的参数。解决方法:使用publicprotected改性剂;)

+1

谢谢你的队友。从VB交换到C#而没有你们会更难。 – wotney

+0

@wotney,是一个很好的决定,转移到C# –

1

枚举ReturnStyle没有任何访问修饰符是私有的(这是默认的访问修饰符),因此,因为DispalyArticle是受保护的,你得到这个错误。任何班级都可以从ServeArticle继承,通过这样做可以访问DisplayArticle(),其中ReturnStyle作为参数。

+0

干杯阿德里安,解决方案和一个非常好的解释,为什么会发生。非常感谢。 – wotney