由于其保护级别错误,成员无法访问

本文关键字:成员 访问 错误 于其 保护 | 更新日期: 2023-09-27 18:01:35

在此主题内连接:如何连接字符串从我的类到形式

我试图做与他们的答案相关的解决方案(特别是Jeremy先生的答案),但这个错误不断出现

KeyWord.KeyWord。关键字'由于其保护级别而无法访问

关键字。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,这就是为什么不能在类外访问。

访问修饰符(c#编程指南)

类成员,包括嵌套类和结构,可以是public;Protected internal, Protected, internal, private。访问级别类成员和结构成员,包括嵌套类和默认为私有

请使用以下代码:

public class KeyWord
    {
        String[] keywords = { "abstract", "as", "etc." };
    }

变量默认保护级别为private

您应该为Keywords创建如下属性

public String[] Keywords
{
get{return keywords;}
}

它违反了保护,因为变量默认是私有的

尝试将字符串数组设为public:

public class KeyWord
{
    public String[] keywords = { "abstract", "as", "etc." };
}

你需要用"public"关键字定义你的类

请确保构造函数是按照公共访问说明符添加的。这可能是这种错误的一个原因。例子:

Customer() {
this.CustomerId = ++counter;
}
Change it to : 
public Customer() {
this.CustomerId = ++counter;
}