このトピック内で接続: クラスからフォームに文字列を接続する方法
私は彼らの答え(特にジェレミー卿の答え)に関連する解決策を行おうとしていますが、このエラーは表示され続けます
'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 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」キーワードを使用してクラスを定義する必要があります