在RichTextBox中的函数内部使用IndexOf

时间:2012-10-08 18:17:26

标签: c# lua indexof

我在试图找出我想要完成的逻辑时遇到了一些麻烦。我想要做的是弄清楚如何让'Event'成为一个自动完成的项目,存储它 - 稍后检查它是否存在,或拼写错误。

我正在使用C#。

以下是流利的解释:

功能:

function Test(Event)
end

现在,我想要做的是:

if(richTextBox1.Text.IndexOf("Event"))
{ 
    // Store item via Auto Complete Item
}

一旦存储,我真的不知道如何获得该函数的其他部分。比如,函数内部有多大,直到达到“结束”点。

让我们说,这是函数的一个重要部分:

function Test(Event)
    local k = 0
    if k == 0 then
        Event:SetValue(k)
    end
end

现在,如果它在'if'语句中,我将如何得到'事件'?我使用'LastIndexOf'吗?

简而言之:

  • 检查“事件”是否存在。
  • 如果存在“事件”,请存储它。
  • 存储“事件”后,我们可以确保在写完最后一个“结束”后,“函数”内部没有错误。

非常感谢示例或书面文档。

1 个答案:

答案 0 :(得分:1)

抱歉,我不确定下面的功能是做什么的,下面的功能的第2和第3行不需要在那里。)

function Test(Event)
    local k = 0
    if k == 0 then
        Event:SetValue(k)
    end
end

但如果我理解你并且你想要检索'事件'的价值,那么你应该使用return ......

function Test(Event)
    local k = 0
    if k == 0 then
        Event:SetValue(k)
    end
    return Event;
end

但就像我说的那样,该功能将毫无用处,如下例所示:

local Event = "ham sandwich";
function Test(Event)
    local k = 0
    if k == 0 then
        Event = k
    end
    return Event;
end

print(Test(Event));
0

这是因为,在你的函数中,k总是为0。

我写完这篇文章很久以后,我注意到我实际上没有回答你的问题!

这是一个存储EVENT并将EVENT传递给你在最后一个'结束'后使用的函数。

local eventArray = {};

如果我们在这里声明'eventArray'作为本地(不在函数或代码块中),我们可以确信它可以在代码中的任何地方访问。

function GetEvent(event)
    eventArray = eventArray or {};
    if ( event == nil ) then
        return;
    else
        table.insert(eventArray, event);
        return event;
    end
end

因为函数返回一个值,所以可以从函数外部执行此操作:

local event1 = GetEvent(event);

'event1'现在将保存您的函数返回的值,当然,该函数也会将其保存在表中,以备日后使用。

如果你想存储你的事件,那么确保你的表首先存在于你的函数的开头,即:eventArray = eventArray或{};

这样可以防止意外删除表格。

代码说'表等于自己,但如果它不存在,则等于表。如果你的表存在是无害的,因为它总是接受第一个真实的语句(在这种情况下是'eventArray'确实存在)。

确保事件存在实际上很容易。如果event不可能有布尔值,你也可以使用:if(not event)then

我之所以这样说是因为事件可能存在,其值为false。如果是这种情况并且你使用if(而不是事件)那么它会将该语句视为true,因为event的值为false。这是因为与某些语言不同,false和nil不是一回事。

请记住,虚假和“假”也不是一回事。第一个是布尔值(true或false),第二个是一个文本字符串,表示“false”,并且被视为任何其他字符串。

但为了安全起见,“if(event == nil)”通常是最好的。

使用return告诉函数只是停在那里,因为继续没有意义。因此,如果事件不存在,函数将过早结束。