object @object是什么意思?

本文关键字:意思 是什么 @object object | 更新日期: 2023-09-27 18:14:03

我一直在玩事件和委托,需要异步引发我的事件,因此我一直在使用:

public event EventHandler OnHelloEvent;
public void Raise()
{
    IAsyncResult syncResult = OnHelloEvent.BeginInvoke(this, new EventArgs(), null, null)

在智能感知中,最后一个null被声明为object @object。我以前没有遇到过这个问题,也找不到任何相关的文档。

这是什么意思?它有用吗?

object @object是什么意思?

@符号可以被认为是各种"转义"字符。由于object是c#中的关键字,因此不能将其用作变量名。然而,前缀@字符,它不再是一个关键字,只是一个有效的变量名!

@允许使用保留关键字作为参数名。

这是用于转义保留字的特殊字符,以便它们可以用作标识符。

参见规范第2.4.2节

每个人都回答"这是什么意思?"但没有人回答"这有用吗?"

大多数情况下,答案是No。你应该而不是使用这个

有一些特殊的例外。Off the top of my head:

  1. 与他人代码的互操作性问题:其他人的代码要求您使用一个保留字名称的变量。也许他们的代码是用与c#不同的保留字语言编写的。
  2. 计算机生成的代码:使用@符号对没有伤害。如果您担心保留字冲突,您可能会决定计算机生成的代码中的所有变量都使用@符号。或者,您可能允许非c#程序通过脚本语言或其他方式生成c#程序,并且您希望支持名为class的变量。

@符号只是一个前缀,它允许您使用保留标识符作为变量名。

object @object定义了object类型的变量object