我不确定使用Razor时是否有所不同,我还没有在MSDN Docs中找到它。做这样的事情有效吗?
string f;
foreach(string something in otherthing)
{
f = something.Name;
}
<p>@f</p>
与我的问题相关的部分是string f;
我知道你不能在没有同时分配var的情况下声明var,但是String的呢?我会在哪里找到这种类型的信息?
为什么所有网站(MSDN,MANY在线教程)似乎总是使用var而不是字符串?这是纯粹的懒惰吗?使用它是否真的有意义(而不是)?
我之所以问为什么他们使用var而不是String / string是因为在值明显是String的情况下,他们仍然使用var。是否更容易将变量转换为其他类型?
答案 0 :(得分:0)
您可以声明string
而无需任何帮助。你不能用var
来做这件事,因为C#在声明时必须知道var的类型,因为C#是一种静态类型的语言。
当编译器看到var s = "string"
时,它会看到声明的是一个字符串并将var
解释为字符串。
如果可以很容易地推断出类型,那么使用var
而不是显式类型(例如string
)声明变量会更简洁,有时更具可读性。
答案 1 :(得分:0)
值得查看Scott Gu关于剃刀观点的帖子,因为他涵盖了大部分内容:
http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx
此外,如果你还没有看到它使用Razor动态类型的能力非常整洁,可以用于邮政图书馆之类的东西
有趣的阅读:http://aboutcode.net/2010/11/17/going-postal-generating-email-with-aspnet-mvc-view-engines.html