`
nacu
  • 浏览: 16082 次
  • 性别: 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
反正不用微软的破东西

相关推荐

    Redis-x64-3.0.500-rc1

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

    hprose-dotnet:NET的Hprose 3.0

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

    SubSonic-3.0-master

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

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

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

    Opencv配置VC++

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,...如今也提供对于C#、Ch、Ruby的支持。

    subsonic2.2ORM框架

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

    Silverlight在线几何绘图

    项目使用Silverlight 2.0(可以使用Microsoft Expression v3 beta 转换成 silverlight v3.0) 以及 C#3.0进行开发(在silverlight 和 wpf 上各自实现了一个版本)。核心的绘图引擎具备了良好的灵活性和扩展性,方便...

    Dependency Injection

    Written primarily from a Java point-of-view, this book is appropriate for any developer with a working knowledge of object-oriented programming in Java, Ruby, or C#. About the Author Dhanji R. ...

    FusionCharts源代码极其中文使用帮助文档

    FusionCharts free 是一个跨平台,跨浏览器的flash图表组件解决方案,能够被ASP.NET, ASP, PHP, JSP, ColdFusion, Ruby on Rails, 简单 HTML 页面甚至PPT调用。你不需要知道任何关于flash编程的知识,你只需要知道你...

    HelloWorld:“你好,世界!” 在许多编程语言中

    动作脚本3.0 アセンブリ言语 - C# C#与Unity C ++ 言语 - 科宝 CoffeeScript 言语 镖 ECMAScript 6 F# 福特兰 去 哈斯克尔 - 哈克斯 HTML + CSS × × Java JavaScript...

    即时通讯平台。 Go中的后端。 客户端:Swift iOS,Java Android,JS webapp,可编写脚本的命令行; 聊天机器人-Golang开发

    纯Go(授权GPL 3.0)后端,Java,Javascript和Swift的客户端绑定以及对C ++,C#,Go,Java,Node,PHP,Python,Ruby,Objective-C等的gRPC客户端支持。(许可证Apache 2.0)。 有线传输是通过websocket进行JSON...

    hprose-golang:Hprose是一种跨语言的RPC。 该项目是Gopro的Hprose

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

    The-Little-MongoDB-Book-rus:MongoDB 小书

    他是一位具有丰富经验的 .NET 和 Ruby 开发人员。 他还参与开源项目,是一名技术作家,偶尔在会议上发表演讲。 在应用于 MongoDB 时,他是核心 C# MongoDB NoRM 库的开发者,编写了 mongly 交互式教程和 。 它为...

    openapi-snippet:为给定的Swagger Open API文档生成代码段

    它使用库以各种语言和工具( cURL , Node , Python , Ruby , Java , Go , C# ...)为规范中定义的每个API端点(URL路径+ HTTP方法)生成代码片段。对于选定的端点。 安装 npm i openapi-snippet 生成OpenAPI...

    Hprose for php-PHP

    它提供了高效的序列化和反序列化库,并在此基础上提供了方便灵活的RPC引擎。 Hprose支持众多编程语言,例如: AAuto Quicker ActionScript ASP C++ Dart Delphi/Free Pascal dotNET(C#, Visual Basic...) Golang ...

    peercaststation:PeerCast重制

    对于文档,放置ruby和jekyll并使用doc / help运行jekyll build 。 gem install -N jekyll cd doc/help jekyll build 像这样 参与发展 开发是在GitHub上完成的,因此,如果您有任何要求或问题,请访问GitHub Issue。...

    Syntaxtic !「Syntaxtic!」-crx插件

    则不执行语法高亮显示v1.1.28-为每个请求添加.cc作为c ++别名,为.per作为perl别名v1.1.33-修复了动作脚本为c#问题-修复了.cc别名v2.0.43-添加了选项页,可选的主题和大小v2.0.44-删除了未使用的权限v3.0.74-添加了...

    安卓java读取网页源码-the-little-mongodb-book:来自@justinyhuang的the-little-mongodb

    3.0 Unported license发布。您不需要为本书付钱。 您有权复制、分发、修改或展示本书。但请认可本书的作者是Karl Seguin,也请勿将其用于任何商业用途。 您可以在以下链接查看该许可证的全文: 关于作者 Karl Seguin...

    飞行器 Crazyflie 2.0电路图/PCB布局/固件源码官方开源-电路方案

    除了固件和软件项目之外,还有许多社区支持的API,用Java,Ruby,C / C ++,C#和Javascript编写。对于有兴趣进行更高级开发的人来说,有一个开发适配器套件,支持与Crazyflie 2.0上的两个MCU轻松连接JTAG / SWD。 ...

    cpp-算法精粹

    目前支持 Java, C++, C#, Python, Ruby, JavaScript, Swift, Scala, Clojure, 将来还会支持更多编程语言。 在线阅读 https://www.gitbook.com/book/soulmachine/algorithm-essentials/ 内容目录 介绍 线性表 ...

Global site tag (gtag.js) - Google Analytics