2010-07-05 37 views
0

在樣品使用BeginInvoke的線程池的方法:在BeginInvoke調用期間,@object參數引用了什麼?

... 
Func<string, int> method = someWorkMethod; 
IAsyncResult cookie = method.BeginInvoke("test", ... 

一個預期的參數(最後一個)的,在BeginInvoke的是:

object @object 

什麼是@意味着什麼?

感謝,

斯科特

+0

重複:http://stackoverflow.com/questions/429529/what-does-the-symbol-before-a-variable-name-mean-in-c; http://stackoverflow.com/questions/91817/whats-the-use-meaning-of-the-character-in-variable-names-in-c – serhio 2010-07-05 21:05:52

+0

完整答案:http://stackoverflow.com/questions/91817/whats-the-use-of-the-character-in-variable-names-in-c/92045#92045 – serhio 2010-07-05 21:06:26

回答

3

的@是一個轉義符,讓您使用關鍵字作爲符號名。舉例來說,你不能做正常:

object object = something; 

...因爲對象是一個關鍵字,但你可以這樣做:

object @object = 

void DoSomething(params object[] @params) { 

...等

+0

啊,有趣!我完全忘記了這一點。下一個問題 - 爲什麼我想要通過使用保留字來引入可能的混淆,還是隻是儘可能容納框架? – 2010-07-05 20:16:38

+0

那麼,無論您是否使用該功能,您都可以使用它,這取決於您。他們允許它,因爲有時關鍵字使用完全可用的描述,也可以用於變量名稱。有時候,它會讓人不悅,因爲它們基本上就像關鍵字一樣閱讀,所以您必須決定使用它們是否值得混淆? 我偶爾會用到它,它會混淆一些:) – 2010-07-05 20:21:36

+1

@Scott:它也存在,因爲.NET框架可以被其他語言使用,其中一些語言可能有不同的保留字...(「對象「不是所有.net語言的關鍵字) – 2010-07-05 20:26:27

1

它只是一種逃避字符。這樣,即使它是一個保留關鍵字,您也可以爲所需的任何名稱命名參數。

相關問題