我正在為我的學(xué)習(xí)開發(fā)一個應(yīng)用程序。現(xiàn)在我剛剛啟動了一個應(yīng)用程序,其中我有一個包含足球聯(lián)賽和俱樂部等的數(shù)據(jù)庫?,F(xiàn)在我有一個俱樂部列表,現(xiàn)在我試圖添加更多聯(lián)賽的球員,然后只有 1 個。但是當(dāng)我收到這個錯誤時做同樣的事情然后做之前。這是無效列表的代碼: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 = 這是相同的代碼,只有俱樂部中的查詢使用列表框中的選定項(xiàng)目,但任何人都知道為什么我在第一個列表中收到此錯誤:錯誤 CS0050 可訪問性不一致:返回類型“ List<Competitie>”比方法“ DatabaseManager.GetAllCompetities()”更難訪問
1 回答

慕田峪7331174
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個贊
您必須公開您的課程:
public class Competitie
如果您不指定訪問修飾符,它默認(rèn)為是internal
(即只能在它編譯成的程序集中訪問)。
正如錯誤所說,該類必須至少與返回它的方法一樣可訪問。
按照您現(xiàn)在的方式,可以調(diào)用 GetAllCompetities() 方法的代碼(因?yàn)樗枪驳模┯锌赡軣o法訪問該方法返回的類。顯然這不是一個合乎邏輯的情況——調(diào)用代碼將無法使用或理解它返回的數(shù)據(jù)。
注意根據(jù)上下文,將 GetAllCompetities() 方法標(biāo)記為internal
匹配類實(shí)際上可能更合適。這樣,在程序集之外都無法訪問它。不過,這完全取決于您的情況和您的需求。我只是為了完整性而注意到這一點(diǎn)。它將解決錯誤,但會導(dǎo)致這些代碼的可訪問性級別不同。
這是 C# 訪問修飾符的文檔:https ://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/access-modifiers
- 1 回答
- 0 關(guān)注
- 241 瀏覽
添加回答
舉報
0/150
提交
取消