您的位置:首页 > 编程语言 > C#

C#中参数类型“”比方法“”的访问性低的问题

2015-07-01 15:50 176 查看
今天再做《C#入门经典》第12章的第一个例子时出现了这样的错误:

错误 4 可访问性不一致: 参数类型“System.Collections.Generic.IEnumerable<ConsoleApplication1.Vector>”比方法“ConsoleApplication1.Vectors.Vectors(System.Collections.Generic.IEnumerable<ConsoleApplication1.Vector>)”的可访问性低 D:\cspj\cs\20150701\ConsoleApplication1\ConsoleApplication1\Vectors.cs
14 16 ConsoleApplication1

后来发现是我定义的静态类可访问等级要比调用的类的可访问等级高,这是原先出错的定义:

class Vector

{

///此处省略

///

}

public static class VectorDelegates

{

public static int Compare(Vector x, Vector y)

{

///此处省略

///

}

public static bool TopRightQuadrant(Vector target)

{

///此处省略

///

}

}

明显静态类VectorDelegates的可访问级别是static,而Vector的可访问级别由于疏忽没有定义,默认的是private,而VectorDelegates 的Compare和TopRightQuadrant方法的传递参数都是Vector类,public级别的类调用private的参数显然可能会出现访问不到的情况,所以会出现错误。

这里将Vector类定义改一下就好了,如下:

public class Vector

{

///此处省略

///

}

参考资料:https://msdn.microsoft.com/zh-cn/library/ba0a1yw2%28v=VS.80%29.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: