我想知道你在哪里画出了编程语言功能和平台功能之间的界限。例如,Linq是C#语言功能还是.NET功能。编程语言是否像平台的规范一样工作?语言功能vs框架功能
回答
这是一个艰难的行画,和LINQ是一个很好的例子:
Query expressions,implicitly typed variables和extensions methods在C#和VB.NET语言功能,
具体为LINQ工作提供必要背景的扩展方法是.NET 3.5及更高版本中的平台功能。
LINQ的是自3.5版
你可以找到C# specification here的.NET Framework的一部分。
LINQ是.NET特性,因为它可以从所有CLS兼容语言访问。 yield语句是C#语言功能。
LINQ是框架的一个组成部分:
为了使用Linq你必须添加“Linq的”命名空间。你可以不要说是一个延迟语言的FileStream。
嗯,有趣的问题。 .NET实际上更像是一个图书馆,但是它完全整合到了语言中,为了使用该语言的许多功能,你需要包含它。所以我想这个决定性因素是你是否必须包含.NET才能使该功能存在。在Linq的情况下,你必须包含.NET,所以我认为它只是一个.NET特性而不是语言特性。
我相信在你的例子中,答案就是两者。
启用Linq
的扩展方法是平台.Net的一项功能。但是,被转换为对这些扩展方法的调用的语言结构是C#语言的一个特性。您可以使用VB中的相同扩展方法,但不能使用相同的语言结构。
以同样的方式,您可以使用两种语言的Linq to XML,但只有VB具有XML文字。
同意。 * dynamic *关键字也是一个例子。或更大:IL是一个平台功能。 – 2010-11-03 12:04:20
- 1. AudioToolbox框架功能
- 2. 编程语言功能
- 3. 动态LINQ语言功能
- 4. Javascript作为功能语言
- 5. 功能的“自然语言”
- 6. Lisp语言的功能
- 7. CodeIgniter动态语言功能
- 8. Mailchimp多语言功能
- 9. 功能汇编语言
- 10. .NET框架:新功能
- 11. 音频框架功能
- 12. ZK框架离线功能
- 13. 你称之为功能语言功能是什么?
- 14. F#功能VS C# “功能” 蒸发散
- 15. 宣言和功能
- 16. 序言notBetween功能
- 17. 序言词功能
- 18. Android 7的Java 7语言功能
- 19. 从功能语言访问numpy数组
- 20. 纯功能语言中的高效堆
- 21. 功能多语言的Joomla 1.5
- 22. Silex语言切换功能测试
- 23. 用户界面功能建模语言?
- 24. 功能语言+算法交易
- 25. 此功能使用什么语言?
- 26. 功能语言动态编程
- 27. 黄瓜 - 多语言站点的功能
- 28. 功能语言的建筑思维
- 29. 优化多语言支持功能
- 30. 语言必须具备哪些功能?
你确定吗?隐式类型和扩展方法是语言结构,它们在编译时转换为普通类型和常规静态方法调用。但Linq中使用的具体扩展方法确实是平台功能。 – Gorpik 2010-11-03 10:53:56
@Gorpik,你说得对。答案已更新。 – 2010-11-03 10:58:36
扩展方法也需要在C#中实现。 – Dykam 2010-11-03 11:13:20