[英]Member is inaccessible due to its protection level error
在本主題中連接: 如何將我的班級中的字符串連接到表單
我試圖做與他們的答案相關的解決方案(特別是傑里米爵士的回答),但這個錯誤不斷出現
“KeyWord.KeyWord.keywords”由於其保護級別而無法訪問
KeyWords.cs 的代碼:
namespace KeyWord
{
public class KeyWord
{
String[] keywords = { "abstract", "as", "etc." };
}
}
main.cs 的代碼
// Check whether the token is a keyword.
var keyboardCls = new KeyWord.KeyWord();
String[] keywords = keyboardCls.keywords;
for (int i = 0; i < keywords.Length; i++)
{
if (keywords[i] == token)
{
// Apply alternative color and font to highlight keyword.
rtb.SelectionColor = Color.Blue;
rtb.SelectionFont = new Font("Courier New", 10, FontStyle.Bold);
break;
}
}
我應該怎么辦?
您需要將keywords
定義為 public
public String[] keywords = { "abstract", "as", "etc." };
目前它是private
,這就是為什么不能在課堂外訪問。
類成員,包括嵌套類和結構,可以是 public、protected internal、protected、internal 或 private。 類成員和結構成員(包括嵌套類和結構)的訪問級別默認為私有。
請改用此代碼:
public class KeyWord
{
String[] keywords = { "abstract", "as", "etc." };
}
變量的保護級別默認為private
。 一個好的做法是為類中的成員使用屬性。
您應該為關鍵字創建一個屬性,如下所示
public String[] Keywords
{
get{return keywords;}
}
它違反保護,因為變量默認是私有的
嘗試公開字符串數組:
public class KeyWord
{
public String[] keywords = { "abstract", "as", "etc." };
}
您需要使用“public”關鍵字定義您的類
請確保與公共訪問說明符一樣添加構造函數。 這可能是導致此類錯誤的原因。 例子 :
Customer() {
this.CustomerId = ++counter;
}
Change it to :
public Customer() {
this.CustomerId = ++counter;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.