`
simonlaw
  • 浏览: 40695 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

C#2.0经典读书笔记

阅读更多

1,可以为类或者命名空间指定别名
例如(命名空间别名):using myAlias = myNameSpace1.myNameSpace2.Space3

 

2, C#的另外几种开发工具:SharpDevelop / Snippet Compiler
C#返编译软件:.NET Reflector
C#单元测试工具:NUnit
C#代码生成工具:CodeSmith
C#代码标准检测工具:FxCop

 

3, 编程风格建议
A,代码块之间空一行
B,左大括号占一行
C,括号的嵌套层次要缩进(4个空格)
D,变量命名规则(就是名首字母小字,后面出现单词的首字母大写,如myData)

 

4, C#的四种数值类型不被.net平台上其他语言支持,这四种数值类型是(Sbyte,ushort,uint,ulong)

 

5, 数据类型显式转换的两种方式:
A,System.Convert 类提供多种类型的数据相互转换
B,括号形式,如(int)

6,C#中全局变量的解决方法
用静态类和静态变量来实现,如:private static string name = "wang";

 

7, a++ 和 ++a的区别
a++ 先参与运算再自加 ++a 先自加再参与运算

 

8,^运算符号
用在两个bool型运算中表示异或(只有一个操作数为 true 时,其结果才为 true)
用在两个int型运算中表示二进制按位异或(5^6 = 101^110=011(3))

 

9, C#语言中数据类型检测
检测数据类型:int a=5; a is int?返回true
检测类型的容量:sizeof(int);

 

10,C#中逻辑运算符
“&”表示“与”,两者都为真结果才为真
“&&”表示“与”,与&不同的是它仅在必要时才计算第二个操作数
“|”表示“或”,两者中有一方为真结果就为真
“||”表示“或”,与|不同的是它仅在必要时才计算第二个操作数
“^”表示“异或”,两者中只有一方为真结果才为真
“!”表示“非”,参与变量取反

 

11,switch语句中的Case部分的内容为空时,直接执行Case的下一个Case中的内容

 

12,switch语句支持对枚举型的分支处理

 

13,三元运算符代替简单的if else 语句
例如:
if (a>b)
{c=a-b }
else {c=a+b} 写为 c = a>b?a-b:a+b

 

14,四种循环语句
A:for(){} 执行次数已知,可正向步进,逆向步进,步长不一定为1
B:foreach(){} 对集合实体进行遍历操作
C: while(){};执行0次或0次以上,在循环体中改变循环判断条件
D: do{} while(); 至少执行一次,在循环体中改变循环判断条件

 

15,改变循环体执行的4种关键字:
A:goto 从循环体中跳到标签位置,不建议从循环体外跳向循环体内
B: return 跳出当前过程,而不是循环体
C:break 跳出当前循环体(跳到当前循环体外闻)
D:continue 跳过当前循环体中的当次循环,进入下一次循环

 

16,关于冒泡排序算法的一个经典例子

static void Main(string[] args)
{

int[] myArray = new int[5] { 12,9,35,68,51};
int a = 0;

for (int i = 0; i < myArray.Length; i++)
{
Console.WriteLine(myArray[i]);
}
Console.ReadLine();

//外层循环用来控制内层循环终值,因为每运行一次数组中的最大数会推动到数组最后
for (int i = myArray.Length - 1; i >= 0; i--)
{
for (int j = 0; j < i; j++) //内层循环用来比较相临两数,把大数向后推动
{
if (myArray[j] > myArray[j + 1])
{
a = myArray[j];
myArray[j] = myArray[j + 1];
myArray[j + 1] = a;
}
}
}

for (int i = 0; i < myArray.Length; i++)
{
Console.WriteLine(myArray[i]);
}
Console.ReadLine();

}

 

17,方法中的return意思是把控制权交给方法调用者,在方法上面一行使用///注释可以自动生成关于方法的说明,调用者使用此方法时,VS2005会显示出这些注释(智能提示功能)。

 

18,方法中传入参数中ref的用法(使参数按引用传递,ref参数必须初始化)

 

19,方法中传入参数中out的用法同ref,不同之处是out的传入参数不用初始化

 

20,方法重载的三种形式
A:参数个数不同
B:参数类型不同
C:参数类型相同,但参数引用和非引用 也是重载(比如:static int add(ref int a,ref int b) 和 static int add(int a, int b))

 

21,System.Environment 此类获取当前运行环境下的很多信息.

------------------------------------------------------------------------------------


第二部分 C#提高

1,VS2005中类设计图的使用(ClassDiagram)用图形界面设计类,能自动生成类代码

 

2,类的构成(类的成员):
A:构造函数(可重载)
B:析构函数(一个类只能有一个析构函数,并且不能被调用),当程度封闭窗口,文件,网络连接这类非托管资源的时候,应当使用析构函数来释放这些资源。
C:字段(在类内部使用)
D:属性,(用来获取,修改类中字段的值,用get set实现,get set)
E:方法。

 

3,类成员的访问控制修饰符(private(默认) public protected internal)
其中,protected 只能在类内部访问和被它的派生类中访问,介于private 和 public 之间
internal是类型和类型成员的访问修饰符,用来限制类成员,以便只有在当前命名空间或程度集中的类可以访问它

 

4,枚举类型是轻量级的值类型,用enum来声明,枚举用来表达一组特定值的集合行为,如windows窗体的可选状态等

 

5, 结构用struct来声明,结构与类的区别:
A:结构是值类型,在堆栈上分配地址。缺点是资源有限,不适合处理大的逻辑复杂对象,结构不支持继承,但可以实现接口。

B:类是引用类型,在堆上分配地址。
C:结构执行效率要比类高,但只适合小对象。

 

6,注意多维数组和交错数组(数组的数组/锯齿数组)的区别。
多维数组:int[,] intArray = new int[2,2]{{10,11},{12,13}}
交错数组(元素为数组的数组,维度和大小可以不同):写法如下
int[][] intArray = new int[3]
int[0] = new int[]{10,20};
int[1] = new int[]{15,30,33};
int[2] = new int[]{15,22,25,29,65};
或者:
int[][] intArray = new int[][]
{
new int[] {10,20},
new int[] {15,30,33},
new int[] {15,22,25,29,65}
}

 

7, A:数组的遍历foreach,
B:数组的清除System.Array(myArray,index,length),
C:数组的查找Array.IndexOf(myArray, Object) 和4个参数的高级查找缩小查找范围
D:数组的排序Array.Sort(myArray) 顺序排序 / Array.Reverse(myArray) 注意此为反转数组并不是倒序

 

8, ArrayList ,同数组最大的区别是arrayList的容量是自动扩充的,
注意arraylist.capacity 显示容量,arraylist.count显示元素个数。
两种增加元素的方式ADD,insert
三种删除元素的方式clear,Remove,RemoveAt
ArrayList向Array的转换
myArrayList.TrimToSize(),缩小capacity到当前实际容量,减少内存浪费.

 

9, HashTable 键值对集合的字典,不能通过其index来访问,只能通过key来访问表中值,也就是hashTable[key]
增加元素方式:add(key,value)
删除元素方式: clear() / remove(key)
遍历:foreach (DictionaryEntry d in h1)
查找: HashTable.Contains / HashTable.ContainsKey 是否包含指定key的项
HashTable.ContainsValue 是否包含指定value的项

 

10,Queue 队列类是先进先出集合
Queue的三个主要操作
Enqueue 将一个元素增加到Queue的尾部
Dequeue 从Queue的开始处取出最旧元素并移除此元素
Peek 从Queue处返回最旧元素但不删除

 

11,Stock 堆栈类是后进先出集合
Stock的三个主要操作
Push 在Stock的顶部加入元素
Pop 从Stock顶部取出最新元素并移除此元素
Peek 从Stock顶部返回最新元素但不删除

 

12,SortedList 是ArrayList 和 HashTable的结合体 ,当同时需要键值对和顺序索引时,使用SortedList


13,Dictionary字典类(泛型类)

分享到:
评论

相关推荐

    C#2.0标准文档(官方语言规范)

    C# 2.0是微软开发的一种面向对象的编程语言,它是.NET框架的重要组成部分,用于构建各种应用程序,包括桌面应用、Web应用以及游戏等。C# 2.0在C# 1.0的基础上进行了多方面的增强和改进,引入了许多新特性,为程序员...

    C#2.0完全参考手册源代码

    《C# 2.0 完全参考手册》是一本深度解析C# 2.0编程语言的专业书籍,其源代码提供了丰富的实例和示例,旨在帮助开发者深入理解和掌握C# 2.0的关键特性。这份源代码是学习C# 2.0的重要资源,通过实践这些代码,读者...

    C# 2.0 宝典的源代码

    通过阅读和分析这些代码,你将加深对C# 2.0语法、面向对象编程概念以及.NET Framework的理解,为后续学习C# 3.0、4.0乃至最新版本打下坚实基础。 总之,《C# 2.0 宝典》的源代码提供了宝贵的实践机会,无论是对初学...

    开发人员必看的C#2.0教程...

    C# 2.0是微软.NET框架下的一个高级编程语言,是开发Windows应用程序、Web应用程序以及游戏等的理想选择。这个“开发人员必看的C# 2.0教程”旨在帮助初学者和有一定经验的开发者深入理解C# 2.0的关键特性,提升编程...

    完全手册:c#2.0程序设计详解电子教程

    《完全手册:C#2.0程序设计详解电子教程》是一部深入探讨C# 2.0编程技术的全面性资源,旨在帮助读者掌握C#语言的基础与高级特性,以及利用这些特性进行高效软件开发。本教程涵盖了从入门到进阶的各个方面,包括语法...

    C#2.0示例

    C# 2.0是微软.NET Framework 2.0的一部分,它在C# 1.0的基础上进行了一系列的增强和扩展,提供了更多用于开发高效、可靠和可维护的应用程序的功能。以下是一些C# 2.0的关键知识点,结合给定的文件名,我们可以推断出...

    c#2.0新特性(修订)

    C# 2.0是.NET Framework 2.0的一部分,它在C# 1.0的基础上引入了一系列增强和新特性,极大地提升了开发人员的生产力和代码的灵活性。在这个CHM文档中,我们可以期待深入探讨以下几个关键知识点: 1. **匿名方法**:...

    C#2.0新特性

    C# 2.0是.NET Framework 2.0的一部分,发布于2005年,它引入了许多增强功能,进一步提升了开发人员的生产力和代码的可读性。以下是C# 2.0中的主要新特性: 1. **匿名方法**: 匿名方法允许在不定义单独的方法的...

    C#2.0锐利体验

    《C#2.0 锐利体验》是一套深度探讨C#编程语言特性的课程,主要聚焦于C#2.0版本的新特性及其在实际开发中的应用。通过以下几个主题,我们将深入理解C#2.0如何提升编程效率和代码质量。 1. **泛型编程**(C#2.0.锐利...

    c#2.0 宝典 源文件21-25

    《C# 2.0 宝典》是C#编程领域的一本经典著作,它深入浅出地介绍了C# 2.0版本的各种特性和应用。源文件21至25,代表了书中对应的章节实例代码,这些源程序旨在帮助读者更直观地理解并实践书中的理论知识。 在C# 2.0...

    C#2.0程序设计详解电子教程

    本书介绍了微软最新的编程语言C# 2.0,全书共分7篇共18章,从基础到应用,内容涉及C# 2.0语法、面向对象编程、使用Visual Studio 2005快速可视化编辑器、.NET类库的使用、使用ADO.NET 2.0进行数据库编程,以及使用C#...

    用C#2.0实现网络蜘蛛

    标题中的“用C#2.0实现网络蜘蛛”是指使用C#编程语言的2.0版本来编写一个网络爬虫程序。网络爬虫是一种自动抓取网页内容的软件,它遍历互联网上的网页,收集信息并存储在本地,通常用于构建搜索引擎、数据分析或其他...

    C#2.0

    C#2.0是Microsoft .NET框架的一部分,它在原有的C#版本基础上进行了显著的增强,引入了一系列重要的语言扩展,这些扩展显著提升了编程的效率、灵活性和安全性。本篇文章将深入探讨C#2.0中引入的四个关键特性:泛型、...

    C#2.0完全参考手册

    C#2.0完全参考手册.不错的工具书。相当于msdn。免费提供给大家

    《C# 2.0实例自学手册 通过200个例子掌握Web开发捷径》一书配套光盘

    《C# 2.0实例自学手册》是一本旨在帮助读者快速掌握Web开发技术的书籍,通过200个精心设计的例子,引导学习者深入理解C# 2.0编程语言及其在Web开发中的应用。这本书的配套光盘包含了一系列的源代码,尽管由于文件...

    C# 2.0压缩操作

    在C# 2.0版本中,开发人员可以利用.NET Framework提供的System.IO.Compression命名空间进行文件和数据的压缩操作。这个命名空间包含了GZipStream和DeflateStream类,它们分别实现了Gzip和Deflate压缩算法。此外,...

    程序天下:C#2.0实例自学手册_200个例子.教程_光盘

    《程序天下:C#2.0实例自学手册_200个例子.教程_光盘》是一本专注于C# 2.0编程语言的实践学习资料。这本书通过200个精心设计的例子,旨在帮助读者从零基础开始,逐步掌握C# 2.0的核心概念和技术,最终达到能够独立...

    c#2.0的讲解,包括c#2.0简介,泛型,匿名方法,迭代器和不完全类的内容

    C# 2.0是微软.NET框架下的一个重要版本,它在C# 1.1的基础上引入了许多新特性,显著增强了语言的功能性和灵活性。这个讲解将深入探讨这些关键特性,包括C# 2.0的简介、泛型、匿名方法、迭代器以及不完全类。 一、C#...

    C# 2.0 winfrom 水晶报表 电子书

    《C# 2.0 WinForm 水晶报表 电子书》是针对C#编程者,特别是使用WinForm开发桌面应用的开发者的一份...通过深入阅读和实践,开发者可以熟练掌握在C# 2.0环境下利用WinForm和水晶报表进行高效、美观的报表设计和实现。

    ASP.Net C#2.0全能数据库组件 (开源含实例源码)

    ASP.NET C# 2.0全能数据库组件是一个强大的开发工具,专为.NET Framework 2.0平台设计,它集成了多种数据库操作功能,为开发者提供了一站式的解决方案。这个组件开源并附带实例源码,使得学习和自定义变得更加方便。...

Global site tag (gtag.js) - Google Analytics