1

编辑:我尝试用这样的函数调用来做一个条件:

public Channels Channel1;
public Channels Channel2;
public void Scale(string value)
{
 if((Channel1.Scale(value)) has been called) //I don't know if a syntaxe is possible for this
 {
  // do something
 }
 if((Channel2.Scale(value)) has been called)
 {
  //do something else
 }
}

我的表格中的调用代码:

Info pub = new Info(); // Class where i have my function Scale
private button1_Click(object sender, EventArgs e)
{
 string value = comboBox1.Text;
 pub.Channel1.Scale(value);
}

有什么想法可以替换“已被调用”的东西吗?

谢谢你的帮助!

4

2 回答 2

1

如果您只需要知道该方法是否已被调用:

作为一个非常基本的解决方案,您可以在您的Channel类中拥有一个属性 : public bool HasScaleBeenCalled { get ; private set; } = false

trueScale方法中将此字段设置为。

然后在你的if你可以检查这个标志的值:

if (Channels1.HasScaleBeenCalled) {} 

如果您需要检查是否value调用了特定参数:

然后你可能需要做一些更复杂的事情:跟踪所有使用的值:

一个字段List<string> ValuesThatHaveBeenScaled { get; } = new List<string>();,并在每次调用 Scale 时向此列表添加一个新值,并且if您可以在其中检查Channels1.ValuesThatHaveBeenScaled.Contains(value)

于 2020-06-25T08:57:34.097 回答
1

Channels中,添加bool如下属性:

public bool ScaleHasBeenCalled { get; private set; }

在 结束时Channels.Scale(value),设置ScaleHasBeenCalled为 true:

ScaleHasBeenCalled = true;

现在在Scale您的问题中显示的方法中,您可以检查ScaleHasBeenCalled

 if(Channel1.ScaleHasBeenCalled)
 {
  // do something
 }
 if(Channel2.ScaleHasBeenCalled)
 {
  //do something else
 }
于 2020-06-25T08:55:20.877 回答