我正在努力了解DSL是什么,刚才这个问题突然出现在我脑海中。至少流畅的版本似乎是内部DSL。 LINQ的查询语法怎么样?那还可以称为内部DSL 吗?或外部DSL ?
答案 0 :(得分:4)
是。或者至少查询语法和关键字可以。
Linq 涵盖了一些相关技术,其中大部分可以理解为特定于域的类和方法,就像大多数类和方法特定于某个特定域一样。当它与任何其他.NET代码完全相同时,很难说这些构成了DSL。
但是C#和VB中的查询语法和关键字仅出现在针对数据源的查询域的上下文中,并且与其他语言不同,因此将它们视为内部DSL是合理的。 (可以做一些奇怪的事情来使它们用于其他目的,但它可能与其他DSL做一些奇怪的事情,迫使它们也服务于其他域)。