2010-10-04 48 views
12

當我在Visual Studio的Enum類型上鍵入.ToString()時,Intellisense會顯示一條穿過ToString()的「穿透」線(儘管它的構建和工作正常)。似乎表明Enum.ToString()以某種方式被棄用。這是真的?如果是這樣,爲什麼?Enum.ToString()已棄用?

alt text

+0

這是因爲ToString()不需要,因爲這是什麼將被稱爲 – PostMan 2010-10-04 22:10:42

+2

你是否使用VS的任何擴展添加着色(如罷工)? – 2010-10-04 22:14:14

+0

@Reed,我正在使用ReSharper ......不知道這是幹嘛的 – JoelFan 2010-10-04 22:18:13

回答

27

該採取的IFormatProvider,ToString(IFormatProvider)ToString(String, IFormatProvider),都是過時的,因的IFormatProvider不無論如何使用的Enum.ToString重載。

其他過載ToString()ToString(String)不是過時的。

這是ReSharper的一個特點,可以撲滅過時的班級成員。它顯然不是很好。

+6

具體來說,OP正在使用的no-arg重載('ToString()')是**而不是棄用。 – 2010-10-04 22:11:29

+2

那麼,Intellisense甚至在我擴大重載之前就會觸發「ToString」 – JoelFan 2010-10-04 22:11:33

+0

@Joel:你是什麼意思?「罷工」?你會得到一個編譯器錯誤或警告?當您將鼠標移到該代碼上時,您會看到什麼? – 2010-10-04 22:12:14