0

Anders Hejlsberg 将 LINQ 描述为语法糖。换句话说,它仍然是 C#。只是他们添加了一些快捷方式,因此您不必手动编写 LINQ 为您创建的所有内容。但是 C# 语言和 .NET 运行时没有发生任何结构变化。

剃须刀也一样吗?

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

Razor
 ^
ASP.NET
 ^
C#
 ^
.NET

我相信它是正确的,但我不确定 ASP.NET 是如何适应的。Razor 是 ASP.NET 正确的,只是它添加了一些语法附加功能,还是更多?

ASP.NET 究竟添加了什么?

4

2 回答 2

5
  1. Linq 不仅仅是语法糖。C# 中 Linq 的简写形式是,但您根本不需要它来使用 Linq。

  2. Linq 是一堆东西。它是 IEnumerable 和 IQueryable 上的扩展方法的集合,它是 lambdas 和匿名类型以及 yield 和延迟执行管道。Linq 涉及 Microsoft 在 Framework 3.5 中添加到 .NET 的所有内容。

  3. Razor 是一个用于渲染 HTML 的模板引擎。

于 2013-06-04T02:50:18.750 回答
3

就依赖关系图而言,您的数字是正确的。但是最好将 razor 视为用 C# 编写的 Web 模板语言

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

同样,Razor 也不需要依赖 ASP.NET。事实上,它当前的实现依赖于 ASP.NET MVC 中的类,而后者只是间接依赖于 ASP.NET 常规。

说 Razor 是 ASP.NET 链接 Linq 是 C# 有点不准确。Linq 是 System.Linq 命名空间中的一组函数,例如Where http://msdn.microsoft.com/en-us/library/system.linq.enumerable.where.aspx。C# 提供了一种方便的语法来为您调用这些函数,即http://msdn.microsoft.com/en-us/library/bb310804.aspx

然而,Razor 并没有将语法与后端函数调用如此明确地分开。

于 2013-06-04T02:48:21.307 回答