【发布时间】:2021-10-04 01:27:25
【问题描述】:
我想将一个对象传递给 C# 函数,以便在函数中而不是之前对其进行评估。 这可能吗?
背景:我想检查特定的 WindowsElement 对于 UI 测试是否可见。当评估此元素时它不可用时(还)抛出异常。
当我编写一个期望此 WindowsElement 作为参数的函数时,它会在函数调用之前进行评估。但是我不能在它周围写一个 try/catch 块。
public static bool IsVisible(WindowsElement windowsElement) {
try {
return windowsElement.Displayed;
}
catch {
return false;
}
}
作为一种解决方法,我创建了一个没有输入参数并返回布尔值的 func 委托。这种方法的一个缺点是检查很长,我必须再次为每个 WindowsElement 插入这个 Func 委托。
Func<bool> isElementVisible = () => {
try {
return UIControls.MyWindowsElement.Displayed;
}
catch {
return false;
}
};
有没有办法结合这两种方法?
【问题讨论】: