【问题标题】:Is it valid to use `<%= "{0}, {1}", arg1, arg2 %>` in place of `<%= string.Format("{0}, {1}", arg1, arg2) %>` in ASP.NET aspx pages使用 `<%= "{0}, {1}", arg1, arg2 %>` 代替 `<%= string.Format("{0}, {1}", arg1, arg2) 是否有效%>` 在 ASP.NET aspx 页面中
【发布时间】:2013-04-11 10:47:13
【问题描述】:

在我的 aspx 页面中,我经常使用以下内容并且效果很好:

&lt;%= "{0}, {1}", arg1, arg2 %&gt;

我使用 ReSharper 进行代码分析。我刚刚将 v6.1 升级到 7,它给了我以下两个错误:

“预期表达式”

“方法 '__ReSharper_Render' 有 1 个参数,但使用 3 个参数调用”

我使用的语法不正确吗?我更愿意继续使用它,因为我发现它非常优雅和紧凑。如果它是正确的(我认为它应该是有效的),知道如何告诉 ReSharper 忽略它或将其视为有效吗?

【问题讨论】:

  • 为什么还要使用字符串格式?这不等于 ,
  • 不完全等同。根据字符串格式和参数的数量,它可能不是很可读。 IDE 可能会重新格式化它。

标签: c# asp.net .net .net-4.0 asp.net-4.0


【解决方案1】:

Saurabh,您正在使用 ASP.NET 的实现细节。这是不好的做法。最好明确指定:

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

【讨论】:

  • 感谢您的回答。实际上,建议使用紧凑格式的是 ReSharper 6.1。并且较新的版本没有并将其显示为错误。就我所知,您能解释一下“实施细节”是什么意思吗?
  • ASP.NET 为您的示例生成类似这样的代码:System.Web.UI.HtmlTextWriter @w; w.Write("{0}, {1}", arg1, arg2) 例如,如果将来他们将其分配给变量 - 您的代码将被破坏:System.Web.UI.HtmlTextWriter @w; object tmp = "{0}, {1}", arg1, arg2; w.Write(tmp);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多