是否可以检查EventCallback
是否已设置为某些值。我将我的内容设置在组件外部,并且只想在设置了EventCallback
的情况下在组件内部显示某些内容。
答案 0 :(得分:7)
您可以在EventCallback参数上使用HasDelegate属性。这将返回一个布尔值,指示事件调度程序是否为非null
[Parameter]
public EventCallback DoSomething { get; set; }
private bool IsEventSet => DoSomething.HasDelegate;
答案 1 :(得分:0)
EventCallBack是一个结构。我期待着同样的事情,例如一种检查EventCallBack是否不为null的方法,但是由于它是一个结构,因此EventCallback.InvokeAsync()如果未设置就不会引发错误,这使我的C#编译器在我的脑海中def然。
在这里的示例中,如果错误处理程序未设置为某种值,则因为Struct不能为null,所以永远不会引发异常。有点不符合我的逻辑,但是它没有什么可调用的,因此不会引发错误。
[Parameter] public EventCallback<string> OnReset { get; set; }
private void ResetFinished()
{
try
{
// Notify the client the Reset button was clicked.
OnReset.InvokeAsync("Reset");
}
catch (Exception error)
{
// for debugging only
string err = error.ToString();
}
}