C# 公共静态类与静态类
假设我有这个类,并且所有方法都得到了正确的实现(在这种情况下,我认为实现与问题无关) 这段代码编译得很好,没有设置错误。如果我将类声明从C# 公共静态类与静态类,c#,access-modifiers,C#,Access Modifiers,假设我有这个类,并且所有方法都得到了正确的实现(在这种情况下,我认为实现与问题无关) 这段代码编译得很好,没有设置错误。如果我将类声明从 static class ZedGraphHelper 到 我收到以下错误消息:不一致的可访问性:参数类型'RP.mgrRPconfigGraph'的可访问性不如方法'Shadow.ZedGraphHelper.AdjustGraphParam(ZedGraph.ZedGraphControl,RP.mgrRPconfigGraph)我刚才包含的类声明中存在
static class ZedGraphHelper
到
我收到以下错误消息:不一致的可访问性:参数类型'RP.mgrRPconfigGraph'的可访问性不如方法'Shadow.ZedGraphHelper.AdjustGraphParam(ZedGraph.ZedGraphControl,RP.mgrRPconfigGraph)
我刚才包含的类声明中存在此方法。该方法是公共静态void
为什么我会犯这个错误?公众是否改变了代码行为?是
RP.mgrRPconfigGraph
是一种内部类型(或者比它更难访问)。因此,当您将ZedGraphHelper
更改为public
时,它将其方法公开为public,这些方法都标记为public
。由于参数是内部类型
或者将该方法设置为内部
internal static void AdjustGraphParam(ZedGraph.ZedGraphControl zGraph, RP.mgrRPconfigGraph mgr)
{ throw new NotImplementedException; }
或者将
RP.mgrRPconfigGraph
类型标记为public类的默认访问修饰符为内部
。
这意味着,如果省略访问修饰符,该类将是内部的
如果将类更改为public,则会出现此错误,因为类中存在的方法的参数之一是内部类型
这意味着您的类不能是公共的,因为它依赖于内部类型,而内部类型比您的类更难访问。(内部类型只能在声明它的程序集中使用,而公共类可以在任何地方使用)。
RP.mgrRPconfigGraph
必须是公共类型。@MuctadirDinar没有任何关键字默认的可访问性是受保护的
?在我的情况下,我认为比public关键字更重要的是不狂欢对不起。我意识到我的评论完全是话题。简单地说,如果将ZedGraphHelper
类设置为公共,则RP.mgrRPconfigGraph
必须是公共的,才能将其用作public
方法的参数。对于名称空间中的类型,默认可访问性为internal
,否则为private
。
public static class ZedGraphHelper
internal static void AdjustGraphParam(ZedGraph.ZedGraphControl zGraph, RP.mgrRPconfigGraph mgr)
{ throw new NotImplementedException; }