Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.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# 属性首先出现在哪种语言中_C#_Programming Languages_Attributes_History - Fatal编程技术网

C# 属性首先出现在哪种语言中

C# 属性首先出现在哪种语言中,c#,programming-languages,attributes,history,C#,Programming Languages,Attributes,History,似乎C#中几乎所有的特性都是从其他语言(Java中的OOP、ML家族中的泛型(参数多态性)和lambdas、Haskell的monads中的LINQ和动态语言中的dynamic)中借用的,但我不知道属性(Java世界中的注释)的起源。C#是引入属性的第一种语言吗?我认为是带有原型的UML > P> >我在C++世界中首次看到COM IDL(接口定义语言)文件中的方法或参数注释。我不知道它们是不是在那里发明的你是指类的中间人吗???我敢肯定OOP不是从Java借用的:Pjava JOP是从C++借

似乎C#中几乎所有的特性都是从其他语言(Java中的OOP、ML家族中的泛型(参数多态性)和lambdas、Haskell的monads中的LINQ和动态语言中的dynamic)中借用的,但我不知道属性(Java世界中的注释)的起源。C#是引入属性的第一种语言吗?

我认为是带有原型的UML


> P> >我在C++世界中首次看到COM IDL(接口定义语言)文件中的方法或参数注释。我不知道它们是不是在那里发明的

你是指类的中间人吗???我敢肯定OOP不是从Java借用的:Pjava JOP是从C++借来的,它从SMALLATE中借用了它。我认为C#泛型是从Ada借来的,尽管我对C#或ML不够熟悉,无法判断您的版本是否更准确。如果LINQ基于Haskell单子语言(而不仅仅是一种特定于领域的子语言),我会非常惊讶——不管怎样,它都不是特别原创的。真正的原创语言也许可以用你的手指数一数——甚至可能只用一只手。剩下的只是通过细微的调整和混合匹配进行的进化-有点像遗传算法。@Steve314是的,这些概念有很多根,但我不知道属性的根,所以这让我觉得这是一个C#创新。@gaearon-对我来说,这听起来仍然像任何其他抽象层,SQL在不同的层次上的用途也差不多。单子只是一个代数。例如,Python列表理解——尽管它们是从Haskell那里借来的——不是一元的。基本的一元结构不存在,并且不能与Haskell式的“do”表示法或显式绑定运算符混合匹配。Python列表理解可以很容易地直接从数学集合表示法复制,而不需要monad连接。我可以对LINQ是一元的提出一个类似的论点吗?是的,我也曾想过UML。