我刚刚安装了.NET Visual Web Developer 2010 IDE的免费版本以及ASP.NET MVC框架的第3版。我对C#,.NET,ASP.NET的MVC框架有了新的认识,我对为我生成的基本控制器类感到困惑,以及什么是C#语言特性与框架提供的可能的语法糖相比
Namespace MvcApplication1
Public Class Default1Controller
Inherits System.Web.Mvc.Controller
'
' GET: /Default1
Function Index() As ActionResult
Return View()
End Function
End Class
End Namespace
具体来说,
在我在网上找到的教程中,:
用于表示继承,但实际上它是Inherits
这个词。 Inherits
是否会赋予任何附加上下文/功能,还是只是另一种说:
的方式?
生成的Index
方法没有返回类型或访问修饰符。我认为这些是C#中方法签名的必需部分。这是一个不正确的假设吗?如果是,那么默认的返回类型是什么?
与Index
方法相关的还有尾随as ActionResult
,它看起来像是方法签名的返回类型,但显然是别的东西。这是做什么的?
语言的上述差异是C#为我提供的,还是这种语法简化是ASP.NET MVC框架通过元编程给我的东西?
完整的答案很棒,但是指向一个教程或参考的指针,它不会承担ASP.NET生态系统的知识并且会获得经验丰富的编程
答案 0 :(得分:3)
如果您想使用C#,看起来您选择了错误的语言。您已发布Visual Basic代码。
Inherits
。与此相当的C#是冒号(:
) public ActionResult Index()
{
return View();
}
ActionResult
是该方法将返回的返回类型(或继承ActionResult
的类)。答案 1 :(得分:2)
我熟悉C#和MVC3,但是它也像WTF那样?
我看到你做了什么:你创建了一个MVC Visual Basic.Net应用程序。
1:不,这就是vb.net的做法。
2:确实如此。 ActionResult是它的返回类型。多数民众赞成vb.net是如何做到的......
3:见2