[英]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.