我在试图找出我想要完成的逻辑时遇到了一些麻烦。我想要做的是弄清楚如何让'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'吗?
简而言之:
非常感谢示例或书面文档。
答案 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告诉函数只是停在那里,因为继续没有意义。因此,如果事件不存在,函数将过早结束。
休