201606-29 展望 C# 7 目前的C#编译器(即Roslyn)于2014年4月开源。目前不仅是编译器在GitHub上开发;语言的设计也是进行公开的讨论。 这允许感兴趣的各方了解语言下一个版本的样子。这篇文章概述了当前在设计语言新特性时的思考过程。如果你对现在Roslyn生态系统的更广泛的方面感兴趣的话,可以阅读DotNetCurry(DNC)杂志2016年3月版上我的文章: .NET编译器平台(Roslyn)概述 。下一版 C#的主题截止目前,每个版本的C#(C#... 继续阅读 >
201412-02 不用IDE写C#的Hello World 用VisualStudio等IDE写C#的HelloWorld非常简单,但脱离了IDE你能不能打印出HelloWorld呢?这不是说工作时脱离IDE,而是学习一下CLR的执行模型.HelloWorld1、新建一个记事本,输入如下代码,另存为HelloWorld.txt。usingSystem;namespaceHelloWorld{classProgram{staticvoidMain(string[]args){Console.WriteLine("HelloWorld!");Console.ReadKey();}}}... 继续阅读 >
201412-02 C# 中的 == 和 equals()有什么区别? 如以下代码:intage=25;shortnewAge=25;Console.WriteLine(age==newAge);//trueConsole.WriteLine(newAge.Equals(age));//falseConsole.ReadLine();int和short为原始类型,但与“==”比较返回true,equals()比较返回false。为什么呢?Answers:简而言之:“equals()”相比“==”复杂。具体来说:原始类型覆盖(override)基类的object.Equals(obje... 继续阅读 >
201412-02 C# 程序员最常犯的 10 个错误 关于C#C#是达成微软公共语言运行库(CLR)的少数语言中的一种。达成CLR的语言可以受益于其带来的特性,如跨语言集成、异常处理、安全性增强、部件组合的简易模型以及调试和分析服务。作为现代的CLR语言,C#是应用最为广泛的,其应用场景针对Windows桌面、移动手机以及服务器环境等复杂、专业的开发项目。C#是种面向对象的强类型语言。C#在编译和运行时都有的强类型检查,使在大多数典型的编程错误能够被尽早地发现,... 继续阅读 >
201412-02 C# 6与VB 12即将加入模式匹配 又有一种源自于函数式编程语言中的概念加入了C#和VB的阵营,这就是被称为模式匹配(PatternMatching)的特性。初看上去,模式匹配的作用类似于一段switch/select语句块,但它的功能要强大的多。请注意:由于VB版本的规格说明现在还没有完成,因此这些示例主要都是来自于C#中的模式匹配规格说明。is或Matches操作符.NET中的模式匹配主要是通过“is/Matches”操作符支持的。这种还让人不太熟悉的操作... 继续阅读 >
201412-02 简短介绍 C# 6 的新特性 几周前我在不同的地方读到了有关C#6的一些新特性。我就决定把它们都收集到一起,如果你还没有读过,就可以一次性把它们都过一遍。它们中的一些可能不会如预期那样神奇,但那也只是目前的更新。你可以通过下载VS2014或者安装这里针对visualstudio2013的Roslyn包来获取它们。那么让我们看看吧:1.$标识符$的作用是简化字符串索引。它与C#中那些内部使用正则表达式匹配实现索引的动态特性不同。示例如下:va... 继续阅读 >
201412-02 C#实现一个最简单的HTTP服务器 简介本文用C#实现了一个最简单的HTTP服务器类,你可以将它嵌入到自己的项目中,或者也可以阅读代码来学习关于HTTP协议的知识。背景高性能的WEB应用一般都架设在强大的WEB服务器上,例如IIS,Apache,和Tomcat。然而,HTML是非常灵活的UI标记语言,也就是说任何应用和后端服务都可以提供HTML的生成支持。在这个小小的例子中,像IIS,、Apache这样的服务器消耗的资源太大了,我们需要自己实现一个简单的HTTP服务器,... 继续阅读 >
201412-02 C# 6和 VB 12的最新特性列表 随着下个版本的C#发布日逐渐临近,那些还没有完成的特性必须被砍掉。最近从特性列表中被砍掉的特性包括主要构造函数(primaryconstructor)和声明表达式(declarationexpression)。MadsTorgersen写道:正如我之前所说的一样,语言特性在这次发布中只是第二等级的考虑。这次发布的主要目标是出色地完成Roslyn价值命题的首个发布,包括在IDE中对语言特性更深入的理解,以及让所有人都可以通过一套健壮和完善的API进行访... 继续阅读 >
201412-02 C# 6.0 的那些事 这两天期中考试没时间去看Connect();直播,挺可惜的,考完后补看了Connect();把C#6.0的新东西总结一下。自动属性初始化(Initializersforauto-properties)以前我们是这么写的为一个默认值加一个后台字段是不是很不爽,现在我们可以这样写只读属性的初始化(Getter-onlyauto-properties)像用户ID这种只读属性,我们以前是这样写的现在我们可以这样写只读属性可以和标了readonly的字... 继续阅读 >