将IndexOf函数应用于RichTextBox里的一个函数

我正在尝试理解我要完成的内容的逻辑,但遇到了一些困难。我想要做的是弄清楚如何将“Event”作为一个自动完成的项,并存储它-然后检查它是否存在或拼写错误。

我正在使用C#。

以下是简洁的解释:

功能:

function Test(Event)
end

现在,我想要使用:

if(richTextBox1.Text.IndexOf("Event"))
{
    // 通过自动完成项存储项目
}

一旦它被存储,我不知道如何获取函数的另一部分。比如,内部有多大,直到达到“end”点为止。

假设,这是一个更大的函数部分:

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

现在,当'Event'在“if”语句中时,我该如何获取它?我使用'LastIndexOf'吗?

简而言之:

  • 检查“Event”是否存在。
  • 如果“Event”存在,将其存储起来。
  • 一旦存储了“Event”,我们就可以确保在写入最后一个“end”后函数内没有错误。

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

点赞
用户1889201
用户1889201

抱歉,我不确定下面的函数旨在做什么,而该函数的第二行和第三行不需要存在。

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

但是,如果我理解你的意思正确,并且你想检索“Event”的值,你应该使用 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”并在最后一个 'end' 之后将“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 or {};

这可以防止意外删除表。

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

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

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

请记住,false 和 "false" 也不是同一件事。前者是布尔值(true 或 false),后者只是说“false”的文本字符串,并像其他任何字符串一样处理。

但是要安全起见,通常最好使用 “if ( event == nil )”。

使用 return 告诉函数停止继续执行,因为没有继续执行的必要。因此,如果 event 不存在,则函数将会过早结束。

Hugh

2012-12-09 10:38:39