2017-02-15 37 views
2

我正在使用VS 2015與Resharper Ultimate作爲Win Forms應用程序,並且正在做一些簡單的設置按鈕的文本屬性,當我在字符串下方看到藍色波浪線時。爲什麼Resharper在這裏給我一個'Localizable Interpolated String'提示?

點擊它會將語句轉換爲我在問題語句下方重新鍵入的語句,並且沒有藍色的波浪曲線。請注意它有逐字和插值運算符。

此外,只是插入相同的字符串設置爲另一個字符串似乎工作正常。這個字符串中沒有字符可以轉義。這裏發生了什麼事?

enter image description here

回答

4

至於逐字字符串:取消「ReSharper |選項|代碼編輯| C#|本地化|不分析逐字字符串」複選框,然後ReSharper會向您顯示這樣的逐字字符串建議。

至於爲什麼它顯示爲WinForms屬性扭曲,但不爲字符串:請參閱a webhelp article關於「Localizable inspector」屬性。如果您想要得到所有字符串的建議,則需要將「Localizable inspector」值更改爲「悲觀」

+0

謝謝。這回答了我所有的問題。 – Ash

1

要設置一個UI元素的文本字符串,UI應該受到定位。

另一方面,插值相當於只使用默認格式提供程序調用string.Format

假設將從資源填充UI元素,並且將使用特定文化格式化它們。這就是爲什麼ReSharper對這種字符串插值的特殊用法很敏感。

關於爲插入的字符串設置不同的字符串,然後將其分配給UI元素,您只是在ReSharper上玩弄技巧。它無法推斷您已將UI元素分配給未本地化的字符串,但問題仍然存在。

+0

感謝您的回答,但如果是這種情況,如何添加逐字運算符'@ @ '刪除圖像最後一行所示的UI本地化需求? – Ash

+0

我猜想ReSharper在使用逐字運算符時無法看到字符串未被本地化。如上所述,問題仍然存在,這只是工具是否能夠提出警告的問題。 –

相關問題