这是C#的法律语法(ASP.NET)吗?

时间:2011-03-16 13:29:02

标签: c# asp.net winforms

我知道在Windows窗体桌面应用程序中,您可以这样做:

string name, favoriteColor, hairStyle;

name = "jason";
favoriteColor = "Dependand upon current mood.";
hairStyle = "Spikey";

但是在ASP.NET网站上使用C#时呢?

你可以这样做:

var name = "jason";
var favoriteColor = "Dependand upon current mood.";
var hairStyle = "Spikey";

但这样做 是否正确?:

var name, favoriteColor, hairStyle;

name = "jason";
favoriteColor = "Dependand upon current mood.";
hairStyle = "Spikey";

我问的原因是因为我无法在文档中的任何地方找到它应该或不应该这样做的地方。我真的不喜欢这样做:

var fname = "";
var lname = "";

@{
    fname = row.FirstName;
    lname = row.LastName;
}

我更愿意这样做:

var fname, lname;

@{
    fname = row.FirstName;
    lname = row.LastName;
}

感谢任何帮助。

谢谢

5 个答案:

答案 0 :(得分:9)

C#是C#,无论它在哪里运行。

您可以在桌面应用程序中执行的任何操作也可以在ASP.Net中完成,尽管在运行时可能没有任何意义。 (例如,不要显示任何形式)

但是,var关键字cannot be used to declare multiple variables on the same line,或声明未初始化的变量;你需要明确声明变量类型。


您似乎认为var与ASP.Net或Razor有关 事实并非如此。

{3}是由C#3为匿名类型和LINQ引入的,可以在任何地方使用(但不能用于多个声明)

答案 1 :(得分:4)

是不正确的
var name, favoriteColor, hairStyle;

name = "jason";
favoriteColor = "Dependand upon current mood.";
hairStyle = "Spikey";

在C#中,无论你在哪个环境中运行。

那是因为隐式类型的变量(即使用'var'的地方)必须在编译器定义的位置使用它们的类型。

答案 2 :(得分:1)

我认为你做不到:

var name, favoriteColor, hairStyle;

    name = "jason";
    favoriteColor = "Dependand upon current mood.";
    hairStyle = "Spikey";

因为在分配期间必须知道类型。

答案 3 :(得分:1)

这是来自MSDN文档:

  

var只能在同一语句中声明并初始化局部变量时使用; 该变量不能初始化为null,或者不能初始化为方法组或匿名函数。

参考:

Implicitly Typed Local Variables (C# Programming Guide)

答案 4 :(得分:0)

鉴于这是ASP.NET,你实际上可以将var声明为一个类型,并且做两个实现(毕竟它是C#,无论你如何绘制它,它都会尝试编译)所以两种方式都是正确的。不,无论你如何编写它,只要它有详细记录并坚持你一直使用的代码风格。

但是尽量不要过度使用var,如果你习惯于一直使用强类型,而不是var,字符串(没有大写字母,有一个微妙的差异)或int,或者任何应用程序,它会好很多需要。

还记得在网络上,事情的工作略有不同。如果你在回复之前分配,它应该没问题,如果它是一个ajax响应,不要忘记重新绘制你想要改变的东西。