`
nacu
  • 浏览: 16380 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

ruby 和 c# 3.0

    博客分类:
  • ruby
阅读更多
看了C# 3.0 的feature, 瀑布汗了一下,MS 开始抄Ruby了么
有下例为证
c# 3.0
c# 代码
 
  1. 10.Times((int i) =>  
  2.                 {  
  3.                     if (i > 5)  
  4.                         Console.WriteLine(i);  
  5.                     else  
  6.                         Console.WriteLine("less than five");  
  7.                 }  
  8.               );  
ruby:
ruby 代码
 
  1. 10.times {|i| puts i.to_s}  

还有
c# 代码
 
  1. var dt = 1.Years().Ago();  
  2.   
  3. var dt2 = 1.Minutes().Ago();  
  4.   
  5. Console.WriteLine("one year age:" + dt.ToShortDateString());  
  6. Console.WriteLine("one minute age:" + dt2.ToString());  

具体实现如下:
c# 代码
 
  1. public static class NumericExtention  
  2.    {  
  3.        public static int Years(this int value)  
  4.        {  
  5.            return value * 60 * 60  * 24 *365;  
  6.        }  
  7.   
  8.        public static int Seconds(this int value)  
  9.        {  
  10.            return value;  
  11.        }  
  12.   
  13.        public static int Minutes(this int value)  
  14.        {  
  15.            return value * 60;  
  16.        }  
  17.   
  18.        public static int Hours(this int value)  
  19.        {  
  20.            return value * 60 * 60;  
  21.        }  
  22.   
  23.        public static DateTime Ago(this int value)  
  24.        {  
  25.            return DateTime.Now.AddSeconds(-value);  
  26.        }  
  27.   
  28.         public static void Times(this int value, Action<int> action)  
  29.        {  
  30.            for (int i = 0; i < value; i++)  
  31.            {  
  32.                action(i);  
  33.            }  
  34.        }  
  35.   
  36.    }  
分享到:
评论
13 楼 oldrev 2007-12-09  
C#每个版本都能有创新,这是守旧的某岛国社区不能比的。
12 楼 mooniscrazy 2007-12-09  
如果不是故意挑事,就是智商有问题。
11 楼 caoyi1983 2007-12-04  
C#3.0是动态类型了?我刚下了vs2008,还没导出功夫装上看看。
10 楼 狂放不羁 2007-11-15  
技术是向前发展的,要发展就要吸取其他语言优秀的地方。站在一个高的起点去发展。其实抄袭也没什么,只要敢承认自己是抄袭的,同时也是为了语言和技术的进步。
9 楼 taowen 2007-10-29  
我反而觉得C# 3.0的static extension的实现方式简单有效。那可不是module,只是一个静态方法。经常我们写测试的时候就希望expect.call这样的API不是用Expect类加call静态方法实现的,而是ExpectCall一个静态方法。
8 楼 shrpcn 2007-10-29  
某些人 喜欢把 "MS抄袭" 放在嘴上.
不是MS是否抄袭XXX 的商业上的成功啊?
7 楼 Venus 2007-09-27  
ray_linn 写道
抄ruby? 你这不是坐井观天么, closure难道是ruby发明的啊?
那ruby的闭包是不是抄袭了Lisp、Smalltalk 和Haskell,甚至perl lua?

6 楼 cat 2007-08-17  
CLR这个平台还是很赞的 他们好像在CLR上面做Dynamic Language Runtime,然后再这个基础上做IronRuby (以前还有IronPython, 不过用的人似乎不多)
5 楼 liping 2007-07-27  
只能说两点:
(1) 微软有好的技术团队,敢于面对非议!
(2) .net平台的基础设计的很好( CTS 和CLR) 
4 楼 ray_linn 2007-07-11  
抄ruby? 你这不是坐井观天么, closure难道是ruby发明的啊?
那ruby的闭包是不是抄袭了Lisp、Smalltalk 和Haskell,甚至perl lua?
3 楼 microhf 2007-07-04  
在这里Readonly等人已经对LINQ进行了评价
http://www.iteye.com/topic/76944

语言应该是博采众长的
引用

In terms of the evolution of programming languages, LINQ represents a fusion of a typical OO language (C#) with ideas taken from modern dynamic languages such as Ruby and functional languages such as Lisp. It’s a thoroughly interesting idea and its availability probably will make C# a technical advance on Java, for a time at least. However, whether it actually delivers better (more powerful, more reliable and more maintainable) applications - which is presumably what it's all about at bottom for the companies employing .NET developers - depends on how C# and VB programmers take to such concepts as lambda expressions, expression trees and declarative programming.

http://www.techworld.com/features/index.cfm?FeatureID=2982
2 楼 yananay 2007-07-03  
吸取别人的长处是好的,可惜ms的平台就是太乱了,部署起来费劲,
尤其是不同版本之间的部署,或者安装了好多MS的软件的时候冲突,头疼。
1 楼 hideto 2007-07-03  
抄吧抄吧,先是java后是ruby
反正不用微软的破东西

相关推荐

    新语言特性和改进 LINQ体验

    本主题聚焦于Visual Studio 2008和C# 3.0中的新特性,特别是Language Integrated Query(LINQ)的引入,它为.NET开发带来了一次革命性的变革。 **Visual Studio 2008新特性** Visual Studio 2008作为微软的旗舰级...

    Redis-x64-3.0.500-rc1

    它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。[1] Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器...

    c# 4.0新特性一览

    表达树是C# 3.0引入的,但在C# 4.0中与动态编程结合得更紧密。表达树可以表示代码结构,便于在运行时分析和执行,常用于 LINQ 查询和其他动态场景。 **动态调度和调用站点缓存(Dynamic Dispatch and Call Site ...

    C#4.0新特性介绍

    C#4.0是继C#3.0之后的一个重要版本,它引入了一系列的新特性,旨在提高开发者的生产力,并更好地与其他动态语言和框架集成。以下是对C#4.0新特性的一些详细介绍。 #### 动态查找 **动态查找**是C#4.0中最显著的新...

    hprose-dotnet:NET的Hprose 3.0

    Hprose支持多种编程语言,例如: AAuto更快动作脚本ASPC ++ 镖德尔福/帕斯卡dotNET(C#,Visual Basic ...) 高朗JavaJavaScript Node.js 物镜PerlPHP Python Ruby打字稿... 通过Hprose ,您可以在这些编程语言...

    lucene3.0 in action

    尽管其原生语言为Java,但得益于开发者社区的热情和努力,如今已有多种其他编程语言(如C/C++、C#、Ruby、Perl、Python、PHP等)的版本或集成方案。 Lucene之所以广受欢迎,除了其简洁性外,还在于其内部复杂而先进...

    ANTLR指南(v3.0)

    ANTLR能够根据用户提供的语言文法生成解析器,这些文法可以包含可嵌入的编程代码,支持的语言包括Java、C++、C#、Objective-C、Python和Ruby等。ANTLR的主要任务是根据文法自动生成编译器,即语法分析器,用于解析...

    Q690452提到的3本书

    这本书全面覆盖了C# 3.0到C# 4.0的新特性和用法,包括LINQ、匿名方法、Lambda表达式、泛型、并发编程等内容。对于C#的语法、类型系统、异常处理、反射以及.NET框架的使用等方面都有深入的剖析,是C#开发者进阶的必备...

    The future of csharp

    - **C# 4.0**:这一版本增加了动态编程支持,允许开发人员在运行时确定对象的类型,从而更好地支持动态语言如Python和Ruby。 #### 动态编程的支持 在C# 4.0中,动态编程的支持是一大亮点。动态编程允许开发人员在不...

    SubSonic-3.0-master

    SubSonic遵循了Ruby on Rails的一些准则,比如在建表时一些约定(建议每个表都加CreatedOn[Datetime],CreatedBy[nvarchar],ModifyOn[DateTime],ModifyBy[nvarchar])....,这些详细信息可以去参考Ruby on Rails.

    ANTLR指南(v3.0).doc

    ANTLR支持多种流行的开发语言,包括Java、C#、C、C++、Objective-C、Python和Ruby等,提供了极大的灵活性。本书主要聚焦于使用Java和C#进行ANTLR的实践操作,包括如何编译、执行以及使用ANTLRWorks开发环境来编写...

    ANTLR指南3.0

    - **支持的语言**: ANTLR支持多种流行编程语言,包括但不限于Java、C#、C、C++、Objective-C、Python和Ruby等。 - **应用领域**: 主要应用于编译器开发、代码解析、语言处理等领域。 #### 二、ANTLR的使用流程 ...

    ANTLR指南(v3.0).pdf

    - **支持的语言**: ANTLR支持多种主流编程语言,包括但不限于Java、C#、C、C++、Objective-C、Python和Ruby。这意味着开发者可以根据项目需求选择合适的目标语言进行语法分析器的开发。 - **生成的语法分析器**: ...

    hprose-php:Hprose是一种跨语言的RPC。 该项目是Hprose 3.0 for PHP

    Hprose支持多种编程语言,例如: 自动更快动作脚本ASPC ++ 镖德尔福/帕斯卡dotNET(C#,Visual Basic ...) 高朗JavaJavaScript Node.js 目标C PerlPHP PythonRuby... 通过Hprose ,您可以方便有效

    subsonic2.2ORM框架

    SubSonic遵循了Ruby on Rails的一些准则,比如在建表时一些约定(建议每个表都加CreatedOn[Datetime],CreatedBy[nvarchar],ModifyOn[DateTime],ModifyBy[nvarchar])....,这些详细信息可以去参考Ruby on Rails. ...

    ActionScript 3 0宝典 中文版 8

    如通过软考官方指定教材及同步辅导书下载、Java、.Net、C#、***、C/C++、Java、Python、Ruby、Rails、数据库管理系统(DBMS)、平面设计、Flash、3D动画等资料,这些资料的学习能够帮助开发者构建更为丰富和强大的...

    selenium-3.0.0b2.tar.gz

    Selenium 支持多种编程语言,包括 Python,Java,C# 和 Ruby。在 Python 中,Selenium 提供了一个 WebDriver API,允许你控制浏览器的行为,如打开网页、点击元素、填写表单等。以下是使用 Python Selenium 的基本...

    swig-3.0.12.tar

    2. **语言支持**:SWIG支持多种编程语言,如Python、Ruby、Perl、Tcl、Java、JavaScript、C#、Lua等,使得跨语言开发变得更加便捷。 3. **类型转换**:SWIG能自动处理不同语言之间的类型转换,如C/C++的指针、...

    5.1 Memcache部署和使用-带书签-201809301

    Memcache客户端库广泛存在于多种编程语言中,包括Perl、PHP、Python、Ruby、C#、C/C++、Lua等。 ### 2.0 单机部署 在 CentOS 6.6 x64 上部署Memcache的步骤如下: 1. **规划**:确定OS、IP地址、Memcache版本、...

Global site tag (gtag.js) - Google Analytics