随笔分类 - 编程开发 - C#
摘要:目录XSD File Generate Class File Simply. 1Why use XSD file to create C# classes?... 2How to convert XML file to XSD file?. 2How to create C# file by XSD...
阅读全文
摘要:C#版本总结:日期 框架.netVisual StudioC#CLR2002.21.020021.01.02003.41.120031.21.12005.112.020052.02.02006.113.02005扩展n/a2.02007.113.520083.02.0SP12010.44.0201...
阅读全文
摘要:代码契约(Code Contract):它并不是语言本身的新功能,而是一些额外的工具,帮助人们控制代码边界。 代码契约之于C#,就相当于诗词歌赋之于语言。 C# in Depth 一,概述 1.1 未引入“代码契约(特指MS代码契约)”之前的状态 “契约” • 契约:20世纪80年代,Bertand
阅读全文
摘要:本章单独介绍查询表达式与Linq to Objects 的世界,展示其强大的语言特性与设计者的“编译器支持”理念。 本文不会按照“由浅入深”的思路来讲解概念,相反从特性的本质及关联讲起,最后简单介绍一些“小技巧”和需要注意的地方,着实有头重脚轻的感觉。--- 史蒂芬King 一,概念 1....
阅读全文
摘要:本章主要讨论C#3较C#2的一些革新,其中大多数革新所体现的新特性是为Linq服务的,但本章不打算单独讨论,会在后面详细说明。 一,自动实现的属性 1.1 意义:是开发者不必再写出由字段直接提供的简单属性。 1.2 优缺点:使用自动属性可以简洁那些不做内部校验的属性,C#编译器支持...
阅读全文
摘要:本章主要回顾C#2相对C#1,所做的微小而又伟大的改变,既考虑到了良好的组织架构,又能良好的向后兼容。其中也涉及到了,修复了C#1时期的细小的Bug. 一,分部类型 可以在多个源文件中为一个类型编写代码。特别适用于部分代码是自动生成的,而其他部分的代码为手动生成。 分部类型一般用于重...
阅读全文
摘要:本章主要学习迭代器的相关内容,以便对Linq更好的理解。其中涉及两个比较重要的类IEnumerator和IEnumerable,这些类是扩展方法及Linq的基础,具体详情请参考MSDN。 迭代器是行为模式的一种范例,而行为模式是一种简化对象之间通信的设计模式。它允许你一个数据项列表中的所有元素...
阅读全文
摘要:本章主要描述扩展方法的应用及相关原理。一, 演变 1.1 扩展方法特征 1)必须在一个静态方法中。 2)至少有一个参数。 3)第一个参数必须附加this关键字作为前缀。 4)第一个参数不能有其他任何修饰符(如 out,ref)。 5)第一个参数的类型不能是指针。 ...
阅读全文
摘要:学而不思则罔,思而不学则殆。 本章主要内容是介绍委托的发展历程及不同阶段的优缺点。文章最后给出了一些概念的解释。 关于委托: C#1:用特定的签名实现委托,委托相当于方法的“指针”或者叫方法的引用。 不足:1.如果想实现一个小委托也要创建一个完整的新方法。 2.方法名过长。...
阅读全文
摘要:实践是检验真理的捷径。 本章主要是理解C#中的协变和逆变的关系,对今后理解泛型会有很大帮助。 1.协变与逆变的概念及代码说明。 C#1:数组是强类型,强类型不允许内部数据不能相互转换。C#2中引入了对协变与逆变的限制,而C#4中又适当放宽了政策,不过这一切对数组没有任何影响,不过可以用一系列的接口和
阅读全文
摘要:Part 1一.值类型和引用类型的误区:1.结构是轻量级的类。错误,大多数时候结构交类中少了很多方法,略显轻便,但DateTime是返例,DateTime携带了计算方法。类中所带的方法是引用类型,并不会大量消耗内存。2.引用类型在堆上,值类型在栈上。错误,变量的值是在它声明的位置存储的,引用类型始终...
阅读全文
摘要:第三章:名称规范 风格:PascalCasing 与 camelCasing 1. DO : PascalCasing used for namespace ,type,member names consisting of multiple words. camelCasing used for p
阅读全文