我一直在玩事件和代表,需要异步提升我的事件,因此我一直在使用:
public event EventHandler OnHelloEvent;
public void Raise()
{
IAsyncResult syncResult = OnHelloEvent.BeginInvoke(this, new EventArgs(), null, null)
在Intellisense中,最后null
被声明为object @object
。我以前没有碰到过这个,似乎找不到任何文件。
这是什么意思?它有用吗?
答案 0 :(得分:22)
@
符号可以被认为是各种各样的“逃逸”字符。由于object
是C#中的关键字,因此您不能将其用作变量名称。但是前缀为@
字符,它不再是关键字,只是一个有效的变量名称!
答案 1 :(得分:9)
@允许您使用保留关键字作为参数的名称。
答案 2 :(得分:5)
这是转义保留字的特殊字符,以便它们可以用作标识符。
答案 3 :(得分:2)
每个人都回答“这是什么意思?”但没有人回答“它有用吗?”
在大多数情况下,答案是否。你应该不使用它。
有一些特殊例外。在我的头顶:
class
的变量。答案 4 :(得分:0)
@符号只是一个前缀,允许您使用保留的标识符作为变量名。
所以object @object
定义了一个名为object的对象类型的变量。