如何串从我的类连接形成(How to connect string from my class to

2019-10-17 18:42发布

我一直对这个stringcodes程序:

string[] keywords = { "abstract", "as", "etc" };

它的工作我使用这个代码后(在mainform.cs)时间:

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;
    }
}

但事情是我想使单独的类(KeyWord.cs)关键字和MainForm的声明,但这个代码不工作:

KeyWord.cs:

namespace editor
{
    class KeyWord
    {
        string[] keywords = { "abstract", "as", "etc" };
    }
}

Mainform.cs:

string[] 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;
    }
}

错误说:

未分配的局部变量“关键字”使用:

注意,此代码在MainForm中的空隙条件下:

private void TextChangedEvent(object sender, EventArgs e)
{
}

我该怎么办?

Answer 1:

欢迎#1,你需要获得关键字类的实例,然后再将其关键词字符串数组,你的本地声明String[] keywords在Mainform.cs,如:

     var keyboardCls = new editor.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;
            }
        }

编辑:

类型或命名空间名称“关键字”找不到。

namespace editor // < -删除的命名空间或使其同frmMain.cs的命名空间或实例化时,完全限定命名空间的new editor.KeyWord();

我已经编辑我的代码显示的最后一个选项。 此外,如果KeyWord.cs是在不同的项目中MainForm.cs,那么你将需要添加一个参考。



Answer 2:

如果你只想调用该对象和只有它的一个实例,使用static关键字。 无论哪种方式,你将不得不使用它之前,它分配一个值。

string[] keywords = new string[3];

3是所述阵列的预定长度。 如果你需要一个可变长度,使用List <T>。 这只会帮助你从目前来看,虽然。 为你做的最好的事情是开始阅读一些书籍或教程。



文章来源: How to connect string from my class to form