Razor Syntax&数据类型

时间:2011-03-23 22:36:20

标签: c# asp.net types razor

我不确定使用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。是否更容易将变量转换为其他类型?

2 个答案:

答案 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