为了账号安全,请及时绑定邮箱和手机立即绑定

C#不一致的可访问性:返回类型比方法更难访问

C#不一致的可访问性:返回类型比方法更难访问

C#
斯蒂芬大帝 2022-06-12 16:16:50
我正在为我的学习开发一个应用程序。现在我刚刚启动了一个应用程序,其中我有一个包含足球联赛和俱乐部等的数据库。现在我有一个俱乐部列表,现在我试图添加更多联赛的球员,然后只有 1 个。但是当我收到这个错误时做同样的事情然后做之前。这是无效列表的代码:public List<Competitie> GetAllCompetities()        {            List<Competitie> Competitie = new List<Competitie>();            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                connection.Open();                string query = "Select * from competitie";                MySqlCommand selectallcompetitiecommand = new MySqlCommand(query, connection);                MySqlDataReader reader = selectallcompetitiecommand.ExecuteReader();                while (reader.Read())                {                    Competitie comp = new Competitie();                    comp.IdCompetitie = reader.GetInt32(0);                    comp.NaamCompetitie = reader.GetString(1);                    Competitie.Add(comp);                }            }            return Competitie;        }然后这是正在工作的俱乐部的代码:public List<Clubs> GetAllClubs(string selecteditem)        { //Zorgt voor alle dingen van de tabel clubs.            List<Clubs> Clubs = new List<Clubs>();            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                  connection.Open();                string query = "Select * from databasevoetbal.clubs where competitie.naamcompetie = '" + selecteditem + "' and clubs.idcompetitie = 这是相同的代码,只有俱乐部中的查询使用列表框中的选定项目,但任何人都知道为什么我在第一个列表中收到此错误:错误 CS0050 可访问性不一致:返回类型“ List<Competitie>”比方法“ DatabaseManager.GetAllCompetities()”更难访问
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

您必须公开您的课程:

public class Competitie

如果您不指定访问修饰符,它默认为是internal(即只能在它编译成的程序集中访问)。

正如错误所说,该类必须至少与返回它的方法一样可访问。

按照您现在的方式,可以调用 GetAllCompetities() 方法的代码(因为它是公共的)有可能无法访问该方法返回的类。显然这不是一个合乎逻辑的情况——调用代码将无法使用或理解它返回的数据。

注意根据上下文,将 GetAllCompetities() 方法标记为internal匹配类实际上可能更合适。这样,在程序集之外都无法访问它。不过,这完全取决于您的情况和您的需求。我只是为了完整性而注意到这一点。它将解决错误,但会导致这些代码的可访问性级别不同。

这是 C# 访问修饰符的文档:https ://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/access-modifiers


查看完整回答
反对 回复 2022-06-12
  • 1 回答
  • 0 关注
  • 196 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信