2013-04-11 63 views
6

在我的aspx頁面我經常使用下面的工作得很好:是否可以使用`<%=「{0},{1}」,arg1,arg2%>`替換<%= string.Format(「{0},{1}」,arg1,arg2 )%>`在ASP.NET aspx頁面

<%= "{0}, {1}", arg1, arg2 %>

我使用ReSharper的代碼分析。我剛剛升級爲V6.1 7,它是給我下面的兩個錯誤:

「表達預計」

「方法‘__ReSharper_Render’有1個參數(S),但被調用,有3爭論(s)「

是我使用的語法不正確?我寧願繼續使用它,因爲我覺得它非常優雅和緊湊。如果它是正確的(我認爲它應該是因爲它工作),任何想法如何告訴ReSharper要麼忽略它或將其視爲有效?

+3

爲什麼要使用字符串格式?這不等於_ <%=arg1%>,<%=arg2 %> _? – penguat 2013-04-11 10:55:42

+0

不完全等同。根據字符串格式和參數的數量,它可能不太可讀。 IDE可能會重新格式化它。 – Saurabh 2013-04-11 11:02:08

回答

4

Saurabh,您正在使用ASP.NET的實現細節。這是不好的做法。最好是明確指定:

<%= string.Format("{0}, {1}", arg1, arg2) %> 
+0

感謝您的回答。實際上它是ReSharper 6.1提出的緊湊格式。而新版本不會將其顯示爲錯誤。 就我所知,你能解釋一下「實現細節」是什麼意思嗎? – Saurabh 2013-04-11 13:14:31

+1

ASP.NET爲您的示例生成如下代碼: 'System.Web.UI.HtmlTextWriter @w; w.Write(「{0},{1}」,arg1,arg2)' 例如,如果將來他們將fist賦值給變量 - 你的代碼將被破壞:'System.Web.UI.HtmlTextWriter @瓦; object tmp =「{0},{1}」,arg1,arg2; w.Write(TMP);' – derigel 2013-04-16 10:43:38

相關問題