C# 内部错误?
我有C# 内部错误?,c#,C#,我有内部问题 internal class Book { [Column(DbType = "INT NOT NULL Identity", IsDbGenerated = true, CanBeNull = false, IsPrimaryKey = true)] public int ID { get; set; } [Column(CanBeNull = false)] public int BookName
内部问题
internal class Book
{
[Column(DbType = "INT NOT NULL Identity", IsDbGenerated = true, CanBeNull = false, IsPrimaryKey = true)]
public int ID
{
get;
set;
}
[Column(CanBeNull = false)]
public int BookName
{
get;
set;
}
}
在另一类中:
public IList<Book> getListBook(int ID)
{
IList<Book> lstData = null;
...
return lstData ;
}
如何修复它?异常是不言自明的 您要求公共方法(getListBook)返回内部对象(Book)的列表。这是不允许的,因为内部(仅在程序集内可见)比公共(随处可见)更难访问,因此会出现错误 请参见下面访问修饰符的详细信息 公开 该类型或成员可由同一程序集或引用它的另一程序集中的任何其他代码访问 私人 类型或成员只能由同一类或结构中的代码访问 受保护 类型或成员只能由同一类或结构中的代码访问,或由该类派生的类中的代码访问 内部
同一程序集中的任何代码都可以访问该类型或成员,但不能从另一个程序集中访问该类型或成员。您的
Book
类是内部的,但getListBook
方法是公共的(可能在公共类中)。任何想要访问此公共方法的外部库也需要访问Book
类,但它是内部的,不应从任何外部库访问。编译器错误正在通知您此矛盾
解决方案是将已发现的
Book
公开,或者将getListBook
或其父类内部化。或者,您可以将getListBook
的返回类型更改为返回IList
或List
,以确保getListBook
的返回类型没有引用内部类型,其中T
是Book
实现的公共基类或Book
实现的公共接口。是从哪个Book.getListBook正在被调用,与Book位于同一命名空间中?
Error 3 Inconsistent accessibility: return type 'System.Collections.Generic.IList<ABC.Book>'
is less accessible than method 'Project.ClassName.getListBook(int)'