我想编写一个单独的软件代码层,它将执行输入过滤工作并且此代码独立运行。 此脚本/代码层将在每个事件(例如,按钮点击等)上运行。 我不想将该单独的代码脚本附加到任何对象。
每次事件发生时,它应该从我单独的代码层传递,然后如果我的代码层允许,它会转到实际代码(函数)。
这怎么可能? 如何编写独立的代码层,使我的代码层不影响事件的实际功能并单独工作。
我只是写了这个虚拟类(为了更清楚),它可以作为单独的代码层工作。
class FiltrationCodeLayer {
public int code;
public void validate(){
if (code == 200)
{
///Execute the event--How to allow?
}
else {
// dont execute the event- How to prevent??
}
}
}
在运行它的实际代码之前,事件系统将如何调用此 validate() 方法,如下面的代码片段。在触发 OnButtonClick 方法之前,我想运行上面的代码。
class ActualCode
{
public void OnButtonClick()
{
Debug.Log("button click executed");
}
}
最佳答案
您可以执行此操作的一种方法是“实现”您自己的控件并覆盖 On{WhateverEvent}
方法:
public class MyButton: Button
{
protected override void OnClick(EventArgs e)
{
if (validate())
{
base.OnClick(e);
}
//Do nothing or whatever
}
}
原因是事件是在 base.OnClick(EventArgs)
中调用的。
关于java - 单独的代码层来处理 C#/Java 中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36542990/