Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Razor和.NET的关系和LINQ一样吗?_C#_.net_Asp.net Mvc 4_Razor - Fatal编程技术网

C# Razor和.NET的关系和LINQ一样吗?

C# Razor和.NET的关系和LINQ一样吗?,c#,.net,asp.net-mvc-4,razor,C#,.net,Asp.net Mvc 4,Razor,Anders Hejlsberg将LINQ描述为句法糖。换句话说,它仍然是C。只是他们添加了一些快捷方式,所以您不必手工编写LINQ为您创建的所有代码。但C#语言和.NET运行时并未经历任何结构性变化 剃刀也是这样吗 我不确定当事物被表示为层时,它是如何排列的。例如,这是正确的吗 Razor ^ ASP.NET ^ C# ^ .NET 我相信这是正确的,但我不确定ASP.NET是否适合。Razor是ASP.NET的权利,除了它增加了一些额外的语法还是更多 ASP.NET到底增加了什么?您

Anders Hejlsberg将LINQ描述为句法糖。换句话说,它仍然是C。只是他们添加了一些快捷方式,所以您不必手工编写LINQ为您创建的所有代码。但C#语言和.NET运行时并未经历任何结构性变化

剃刀也是这样吗

我不确定当事物被表示为层时,它是如何排列的。例如,这是正确的吗

Razor
 ^
ASP.NET
 ^
C#
 ^
.NET
我相信这是正确的,但我不确定ASP.NET是否适合。Razor是ASP.NET的权利,除了它增加了一些额外的语法还是更多


ASP.NET到底增加了什么?

您的数字在依赖关系图方面是正确的。然而,最好将razor看作是用C#编写的web模板语言

在某些方面,这张图表是准确的。例如,C#通常并不真正依赖.NET。您可以为C#编写一个非.NET运行时

类似地,Razor不需要依赖于ASP.NET。事实上,它当前的实现依赖于ASP.NET MVC中的类,而ASP.NET MVC只能间接依赖于ASP.NET

说Razor是ASP.NET链接Linq是C#有点不准确。Linq是System.Linq名称空间中的一组函数,例如
Where
。C#提供了一种方便的语法来为您调用这些函数,即

然而Razor并没有将语法和后端函数调用如此清晰地分开

  • Linq不仅仅是语法上的糖。C#中Linq的简写形式是,但使用Linq时根本不需要它

  • 林克是一堆东西。它是IEnumerable&IQueryable上扩展方法的集合,它是lambdas和匿名类型以及yield和延迟执行管道。Linq涉及微软在Framework3.5中添加到.NET的所有内容

  • Razor是一个用于呈现HTML的模板引擎


  • 这就像使用“dynamic”关键字,但他们是如何做到的,所以你不必…给它起个名字?我不明白你上次的话。您是否有一个链接来解释这一点?
    dynamic
    是在.NET Framework 4.0中添加的。林克比它早。@RobertHarvey我不是指林克。我指的是Razor。@4thSpace的最后一句:)我一直在更新这个答案:)这个(你说它不依赖于asp.net,但你说它依赖于):“Razor不需要依赖于asp.net。事实上,它当前的实现依赖于asp.net MVC中的类,而asp.net MVC只能间接依赖于asp.net。”模板引擎是ASP.NET的一部分还是来自哪里?它必须在某种程度上正确地与.NET结合,因为它使用C#语法并且集成得很好。@4thSpace:它也可以使用VB语法。考虑到.net将VB和C#编译器作为类库的一部分公开,两者都不是很大的延伸。@4thface:是的,它是ASP.net的一部分。您可以对ASP.NET页面使用相同的语法。看,酷。你能看到下面的评论吗。我想你是说它不对?@4thSpace:名称空间就是名称空间。他们住在什么地方并不重要。