OnClick?.Invoke()
时间: 2024-09-15 17:12:39 浏览: 71
`OnClick?.Invoke()` 是.NET框架中的一个常见用法,特别是在Windows Presentation Foundation (WPF)和Unity这样的游戏引擎中,它通常用于响应用户界面元素(如按钮、链接等)的点击事件。`OnClick` 是一个事件处理程序委托,`.Invoke()` 是该委托的一个方法,用于在特定条件下执行关联的事件处理函数。
当你想在某个条件满足时调用这个事件处理函数,可能会先检查 `OnClick` 是否已经被赋值(即是否存在),使用 `?.` 运算符可以避免空引用异常(NullReferenceException)。如果 `OnClick` 为空,`?.Invoke()` 会直接返回,不会尝试调用方法;否则,它会执行委托关联的函数。
举个例子:
```csharp
private Button myButton;
public void Initialize()
{
myButton = new Button();
myButton.Click += MyButtonClickHandler; // 注册事件处理
}
private void MyButtonClickHandler(object sender, RoutedEventArgs e)
{
// 点击事件的实际处理逻辑
}
// 在需要触发点击事件的地方
if (myButton != null && myButton.Click != null)
{
myButton.Click?.Invoke(); // 只有在myButton存在且Click事件已注册时才执行
}
```
阅读全文