info

c# 4.0新特性一览

◇◆丶佛笑我妖孽 提交于 2019-12-29 22:00:42
转自: http://www.cnblogs.com/palo/archive/2009/03/01/1400949.html 终于静下心来仔细听了一遍 Anders Hejlsberg (Visual Studio组的TECHNICAL FELLOW,C#的设计者之一)在PDC08上讲的“The Future of C#”( http://channel9.msdn.com/pdc2008/TL16/ )。 回顾C#发展的历史,C#1.0完全是模仿Java,并保留了C/C++的一些特性如struct,新学者很容易上手;C#2.0加入了泛型,也与Java1.5的泛型如出一辙;C#3.0加入了一堆语法糖,并在没有修改CLR的情况下引入了Linq,简直是神来之笔,虽然很多项目出于各种各样如性能之类的原因没有采用,但非常适合小型程序的快速开发,减轻了程序员的工作量,也提高了代码的可读性;C#4.0增加了动态语言的特性,从里面可以看到很多javascript、python这些动态语言的影子。虽然越来越偏离静态语言的道路,但从另一个角度来说,这些特性也都是为了提高程序员的生产力。至于被接受与否,还是让时间来说话吧。 PS:这里面还有一点版本号的小插曲——VS2008所对应的.Net Framework是3.5,C#是3.0,CLR是2.0,及其混乱

c# 4.0新特性一览

妖精的绣舞 提交于 2019-12-29 22:00:23
终于静下心来仔细听了一遍 Anders Hejlsberg (Visual Studio组的TECHNICAL FELLOW,C#的设计者之一)在PDC08上讲的“The Future of C#”( http://channel9.msdn.com/pdc2008/TL16/ )。 回顾C#发展的历史,C#1.0完全是模仿Java,并保留了C/C++的一些特性如struct,新学者很容易上手;C#2.0加入了泛型,也与Java1.5的泛型如出一辙;C#3.0加入了一堆语法糖,并在没有修改CLR的情况下引入了Linq,简直是神来之笔,虽然很多项目出于各种各样如性能之类的原因没有采用,但非常适合小型程序的快速开发,减轻了程序员的工作量,也提高了代码的可读性;C#4.0增加了动态语言的特性,从里面可以看到很多javascript、python这些动态语言的影子。虽然越来越偏离静态语言的道路,但从另一个角度来说,这些特性也都是为了提高程序员的生产力。至于被接受与否,还是让时间来说话吧。 PS:这里面还有一点版本号的小插曲——VS2008所对应的.Net Framework是3.5,C#是3.0,CLR是2.0,及其混乱,MS终于下决心在VS2010中把这三个版本号都统一成了4.0,于是CLR3不知所终…… Dynamically Typed Object C#4

c# 4.0新特性一览

被刻印的时光 ゝ 提交于 2019-12-29 22:00:06
原文: http://www.cnblogs.com/palo/archive/2009/03/01/1400949.html 终于静下心来仔细听了一遍 Anders Hejlsberg (Visual Studio组的TECHNICAL FELLOW,C#的设计者之一)在PDC08上讲的“The Future of C#”( http://channel9.msdn.com/pdc2008/TL16/ )。 回顾C#发展的历史,C#1.0完全是模仿Java,并保留了C/C++的一些特性如struct,新学者很容易上手;C#2.0加入了泛型,也与Java1.5的泛型如出一辙;C#3.0加入了一堆语法糖,并在没有修改CLR的情况下引入了Linq,简直是神来之笔,虽然很多项目出于各种各样如性能之类的原因没有采用,但非常适合小型程序的快速开发,减轻了程序员的工作量,也提高了代码的可读性;C#4.0增加了动态语言的特性,从里面可以看到很多javascript、python这些动态语言的影子。虽然越来越偏离静态语言的道路,但从另一个角度来说,这些特性也都是为了提高程序员的生产力。至于被接受与否,还是让时间来说话吧。 PS:这里面还有一点版本号的小插曲——VS2008所对应的.Net Framework是3.5,C#是3.0,CLR是2.0,及其混乱

c# 4.0新特性一览

无人久伴 提交于 2019-12-29 21:59:52
c# 4.0新特性一览 终于静下心来仔细听了一遍 Anders Hejlsberg (Visual Studio组的TECHNICAL FELLOW,C#的设计者之一)在PDC08上讲的“The Future of C#”( http://channel9.msdn.com/pdc2008/TL16/ )。 回顾C#发展的历史,C#1.0完全是模仿Java,并保留了C/C++的一些特性如struct,新学者很容易上手;C#2.0加入了泛型,也与Java1.5的泛型如出一辙;C#3.0加入了一堆语法糖,并在没有修改CLR的情况下引入了Linq,简直是神来之笔,虽然很多项目出于各种各样如性能之类的原因没有采用,但非常适合小型程序的快速开发,减轻了程序员的工作量,也提高了代码的可读性;C#4.0增加了动态语言的特性,从里面可以看到很多javascript、python这些动态语言的影子。虽然越来越偏离静态语言的道路,但从另一个角度来说,这些特性也都是为了提高程序员的生产力。至于被接受与否,还是让时间来说话吧。 PS:这里面还有一点版本号的小插曲——VS2008所对应的.Net Framework是3.5,C#是3.0,CLR是2.0,及其混乱,MS终于下决心在VS2010中把这三个版本号都统一成了4.0,于是CLR3不知所终…… Dynamically Typed Object C#4

Node.js从服务器主动发送请求

十年热恋 提交于 2019-12-29 14:40:14
服务器请求百度首页 参考文档 链接 //服务器发送请求 const http = require ( 'http' ) ; const path = require ( 'path' ) ; const fs = require ( 'fs' ) ; let options = { hostname : 'www.baidu.com' , port : '80' } let req = http . request ( options , ( res ) => { let info = '' ; res . on ( 'data' , ( chunk ) => { info += chunk ; } ) res . on ( 'end' , ( ) => { fs . writeFile ( path . join ( __dirname , 'baidu.html' ) , info , ( err ) => { if ( ! err ) { console . log ( "百度主页html内容加载完毕" ) } } ) } ) } ) req . end ( ) ; 服务器向后台接口发送请求 查询数据 const http = require ( 'http' ) ; let options = { protocol : 'http:' , hostname :

SpringBoot实现多环境配置

与世无争的帅哥 提交于 2019-12-29 14:12:15
1.为什么需要配置多环境配置 在实际的开发中,我们往往需要在不同的环境中使用不同的数据库、缓存配置,如果使用同一套配置文件,在不同环境部署的时候手动去修改配置文件,会使部署变得很繁琐。使用多环境配置文件可以很方便的实现此功能。 1.创建不同环境的配置文件 在resource文件夹中添加一下配置文件: application-dev.properties //开发环境配置文件 application-rc.properties //线上环境配置文件 application-test.properties //测试环境配置文件 2. 选择使用的配置文件 在resource/application.properties配置文件中添加一下配置项目: spring.profiles.active=dev 此配置用于选择使用的配置环境,值为application-{profile}.properties中的profile值。 3.使用命令行选择使用的配置文件 SpringBoot还支持通过命令行的方式修改配置,使用方式如下: java -jar xxx.jar --spring.profiles.active=dev 其中--spring.profiles.active=dev相当于在application.properties文件中加入了此配置。 4.测试多环境配置 我们分别在

实现ls及ls的改进ls的实现

烈酒焚心 提交于 2019-12-29 11:55:17
ls的实现及改进ls的实现 参考伪代码实现ls的功能,提交代码的编译,运行结果截图,码云代码链接。 打开目录文件 针对目录文件 读取目录条目 显示文件名 关闭文件目录文件 ls实现代码: #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <errno.h> #include <dirent.h> #include <string.h> #include <linux/limits.h> #include <pwd.h> #include <grp.h> #include <time.h> #define PARAM_NONE 0 //无参数 #define PARAM_A 1 //-a #define PARAM_L 2 //-l #define MAXROWLEN 80 //一行最多显示的字符数 int g_leave_len = MAXROWLEN; //一行是剩余长度,用于输出对齐 int g_maxlen; //存放某目录下最长文件名的长度 void my_error(const char* errstring, int line) { fprintf

使用Webuploader大文件分片传输

梦想与她 提交于 2019-12-29 08:54:35
背景:50G大文件的HTTP上传至服务器。 好了,根据这个命题,可以开始研究我们怎么做才能把这么大的文件上传成功。 分片上传是肯定的,断点续传也是要有的,进度可视化那就更好了,基于这些,我选择了Webuploader在前端进行分片上传。 为什么选择它呢,好吧,它简单,易上手,好排错,文档多...... 实际是我懒...... 网上的教程大部分是复制粘贴,借鉴起来也很无奈,推荐一个我觉得比较实在的 https://www.cnblogs.com/baiyunchen/p/5383507.html 本篇Demo地址,欢迎各位大佬指点 https://github.com/papapalh/Big_File 一:开始 新建立项目,这里用了php7.0版本后台处理。 没啥说的,下载WebUploader的包 http://fex.baidu.com/webuploader/download.html jQuery也是必须的,因为就是依赖jQ的。 好了,可以初始化我们的上传组件了,介绍一下这里Demo的配置 // 创建上传 var uploader = WebUploader.create({ swf: '/webuploader-0.1.5/Uploader.swf', server: 'index.php', // 服务端地址 pick: '#picker', //

第三方组件引用另一个第三方组件的悲剧

旧街凉风 提交于 2019-12-29 05:16:14
首先我先声明,我的摘要是故意这样写的,如果你是因为看了摘要才进来的,请让我大笑三声:哈哈哈~~ 不过既然你已经进来了,不妨继续往下看看~~ 事件背景 话说最近换工作了,刚接手的项目的项目中遇到一个棘手的事情;一个第三方组件中使用了老版的log4net(1.2.10),另一个第三方组件中使用了新版的log4net(1.2.13) 这下问题来了 当我自己的项目中需要同时使用这2个第三方组件的时候,他们各自引用的log4net版本是不一致的 所以,不管我引用的是哪个版本的log4net,最终的效果 是另一个组件初始化的时候将抛出异常 如下图: 由于2个都是非开源的项目,所以无法重新编译,好在其中一个组件是有技术支持的,所以联系了他们的服务人员 经过一些交涉,问题算是初步解决了 服务还是非常好的!!赞一个!!!! 不过从最后一句话可以看出,其实最终的原因,还是出在设计上!! 为什么一定要耦合log4net? 没错~我承认log4net确实是一款不错的log组件,但是即使是不错也 不是必要的,不可或缺的 ! 想想JQuery,多么好的一个js组件,依然有很多公司没有使用jquery,依赖于jquery的往往被称为jquery插件,因为一旦jquery失效了(或没引用),你的组件就无法使用了 所以在开发自己的组件的时候,就需要 定位清楚 ! 这套组件到底是log4net的插件,还是功能独立的?

hadoop完全分布式安装

和自甴很熟 提交于 2019-12-29 02:17:43
下面记录下hadoop完全分布式安装的过程,其中hadoop使用的版本是apache下的,不是cdh。 完全分布式示意图 下面在三台节点上安装hadoop完全分布式,其中一个服务器节点上将有多个hadoop相关的节点,最后是压缩到三台的安装效果,正常来说至少13个服务节点。 (1)zookeeper用于管理namenode,用于故障转移主备切换,其中zookeeper通过failoverController进程来进行namenode主备切换。 (2)namenode主备之间通过journalNode来进行通信,进行数据同步。 (3)resourceManager也会有两个,一个挂了另外一个顶上。 (4)datanode上储存数据,MR计算有数据本地化策略,nodeManager一般和datanode在一起。 以上是最后安装的节点分布图,下面开始安装部署。 前置准备 前置准备包括关闭linux防火墙、修改主机名、ip映射、配置jdk和免密登录,可参考 https://www.cnblogs.com/youngchaolin/p/11992600.html ,其中这里使用的主机名分别为hadoop01、hadoop02和hadoop03。ip映射需修改/etc/hosts文件,添加三台ip和节点名的映射关系。以上操作三台都需要准备好,容易出现问题的就是免密登录,下面记录一下。