Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 内部错误?_C# - Fatal编程技术网

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)'