C# 在RichTextBox中的函数内部使用IndexOf
我在试图弄清楚我要完成的事情的逻辑时遇到了一些困难。我想做的是找出如何使“事件”成为一个自动完成的项目,并存储它——稍后检查它是否存在,或者拼写是否错误 我用的是C 下面是一个流畅的解释: 功能:C# 在RichTextBox中的函数内部使用IndexOf,c#,lua,indexof,C#,Lua,Indexof,我在试图弄清楚我要完成的事情的逻辑时遇到了一些困难。我想做的是找出如何使“事件”成为一个自动完成的项目,并存储它——稍后检查它是否存在,或者拼写是否错误 我用的是C 下面是一个流畅的解释: 功能: function Test(Event) end 现在,我想做的是使用: if(richTextBox1.Text.IndexOf("Event")) { // Store item via Auto Complete Item } 一旦它被存储,我真的不知道如何获取函数的其他部分。比如
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
local event1 = GetEvent(event);
现在,当“事件”在“如果”语句中时,我如何获取它?我是否使用“LastIndexOf”
简言之:
- 检查“事件”是否存在李>
- 如果“事件”存在,则将其存储李>
- 存储“事件”后,我们可以确保在写入最后一个“结束”后“函数”内没有错误
示例或书面文档将不胜感激。对不起,我不确定下面的函数打算做什么,下面函数的第2行和第3行不需要在那里) 但是,如果我理解正确,并且您希望检索“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
在写了很久之后,我又回到这里,我注意到我实际上没有回答你的问题
这是一个函数,它将存储事件并将事件传递给您,以便在最后一次“结束”后使用
local eventArray = {};
如果我们在这里将“eventArray”声明为本地(而不是在函数或代码块中),我们可以确信它可以在代码中的任何地方访问
function GetEvent(event)
eventArray = eventArray or {};
if ( event == nil ) then
return;
else
table.insert(eventArray, event);
return event;
end
end
由于函数返回一个值,因此可以从函数外部执行此操作:
function Test(Event)
local k = 0
if k == 0 then
Event:SetValue(k)
end
end
local event1 = GetEvent(event);
“event1”现在将保存函数返回的值,当然,函数也会将其保存在表中,以便以后需要时使用
如果要存储事件,请确保表首先存在于函数的开头,即:eventArray=eventArray或{}
这可以防止意外删除表
代码说“表等于它自己,但如果它不存在,它等于一个表。”。如果您的表存在,则它是无害的,因为它始终接受第一个true语句(在本例中,它是确实存在的“eventArray”)
确保事件存在实际上很容易。如果事件不可能有布尔值,您还可以使用:If(notevent)then
我之所以这么说,是因为事件可能以false值存在。如果是这种情况,并且您使用了If(而不是event),那么它会将该语句视为true,因为event的值为false。这是因为false和nil不同于某些语言,它们不是一回事
请记住,“假”和“假”也不是一回事。第一个是布尔值(true或false),第二个只是一个表示“false”的文本字符串,与任何其他字符串一样处理
但为了安全起见,“if(event==nil)”通常是最好的
使用return命令函数停止,因为继续没有意义。因此,如果事件不存在,函数将提前结束
Hugh不确定这是否有帮助,但为什么不先创建一个数组,每次运行此函数(测试(事件))时,您都会向数组中添加一个项?我可能有点误解,但您是否试图获取单词
事件的每个实例,并在分发最后一个“结束”后停止@Picrofo:我实际上尝试了一个列表,但我真的不知道如何在函数“end”结束后停止——因为如果使用“if”语句,您有多个端点。这有帮助吗@user1729639对不起,我不明白你的最后一句话。