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#入门经典第七版读书笔记1(C#简介) C#简介 阅读详情

相关推荐

C#读书笔记

此书为《C#入门经典C#6.0&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;Visual Studio 2015)(第七版)》,购于2016年底 购买此书是因为工作需要接触部分C#代码,而那时我对面向对象编程的概念认识尚浅,工作接触的代码又比较庞大,于是寄希望于此书,希望能快速上手C#,了解基本的知识,避免闹笑话。 刚拿到这本书时,我急于求成,加上书前半部分的内容也很入门(读书时跳过了),约2、3周便利用闲暇时

源流 2983

C# 2.0 宝典的源代码

C# 2.0 宝典的随书源代码,很不错的一本书。里面的cs和bs的两个学生管理系统非常经典。值得学习!

C# 7 和 .NET Core 2.0 高级编程教程

C# 7,作为.NET平台的主要编程语言,迎来了自发布以来的一次重大更新。它不仅扩展了语言表达能力,还增强了类型系统的安全性。本章将概述C# 7的核心新特性,包括但不限于元组(Tuples)、局部函数(Local Functions)、模式匹配(Pattern Matching)等。这些特性如何让代码更简洁、更易于维护,以及如何在实际项目中应用这些特性,都是我们将会探讨的重点。泛型编程允许算法和数据结构与它们操作的数据类型分离,这意味着开发者可以编写更通用的代码,这些代码可以在多种类型上操作。

weixin_30336531的博客 911

从法律思维的角度看代码——《Code 2.0》读后感

《Code 2.0》是一本常读常新的书,不时翻阅,也常常会有新的收获。 这次建盛的开源之道读书会,又组织了一次《Code 2.0》的共读活动,大家开了一个腾讯会议,各自聊聊从这本书里读到的感想。果不其然,畅谈之后,作业就来了。 会上说了一次,群里又催了一次,我也答应了,周末写出来。 理解 Lessig 的思路 首先,Lawrence Lessig是一位法学家,而且是一位密切关注技术发展的法学家...

u013182351的博客 895

C#教程(2)———— 各式各样的数据类型 值类型篇

C#教程(2)———— 各式各样的数据类型, 程序的运行离不开各式各样的数据类型,而在C#中,数据类型主要分为值类型和引用类型两种,在本章中我们主要探讨包含了常见的整数、小数、布尔类型等类型的值类型家族。

qq_41603300的博客 1176

c#Dictionary保存不同类型

使用类型dynamic 例如:定义Dictionary为Dictionary<string,dynamic>就可以保存不同类型的value 转载于:https://www.cnblogs.com/come-on-come-on/p/7783010.html

weixin_30641465的博客 1677

重温 C# 字典Dictionary类

C# 中使用字典Dictionary来存储键值对的数据。创建字典时需要定义键值对的类型,再添加字典元素时需要符合定义的键值对类型。要使用Dictionary集合,需要导入C#泛型命名空间System.Collections.Generic(程序集:mscorlib)Dictionary的特性:1、从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成2、任何键都必须是唯一的3、键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值4、Key和Val

flysh05的专栏 6354

C#2.0经典读书笔记 (转)

第一部分:C#入门 1,可以为类或者命名空间指定别名 例如(命名空间别名):using myAlias = myNameSpace1.myNameSpace2.Space3 2, C#的另外几种开发工具:SharpDevelop / Snippet Compiler      C#返编译软件:.NET Reflector      C#单元测试工具:NUnit     ...

weixin_34357887的博客 120

C#2.0经典读书笔记(第一二部分:C#入门和提高)

http://hi.baidu.com/xiaoyear/blog/item/2f52e91310ad8422dc5401ba.html(转) 第一部分:C#入门 1,可以为类或者命名空间指定别名例如(命名空间别名):using myAlias = myNameSpace1.myNameSpace2.Space3 2, C#的另外几种开发工具:SharpDevelop / Snippet C...

35

C#程序设计经典300例》读书笔记

语法基础 结构体主要用于创建小型对象,因为在C#中值类型是存储在线程堆栈中的,而线程堆栈的默认大小是1MB。 交错数组 byte[][] months = new byte[12][]; if (month % 2 == 0) { months[month] = new byte[31]; } else { months[month] = new byte[30]; } ...

SigalHu 3774

C#经典再现——《C#本质论》

 C#经典再现——《C#本质论》 推荐阅读:术有专攻,日益精进  本书是一本清晰、简明的C# 教程,涵盖了C# 2.0。书中对C# 语言的每个重要结构都用简短的示例代码进行说明,并且和其他语言进行了全方位比较。每章开头的“思维导图”指明了本章要讨论的主题以及每个主题同整体的关系。全书由18 章和3 个附录组成。在简单介绍了C# 之后,重点讨论了C# 的数据类型、运算符、方法、类

图灵教育 3138

C#入门经典 第7版》读书笔记_集合

C#入门经典(第7版)》

qq_36129846的博客 640

粗谈C#1.0C#2.0C#3.0C#4.0

首先我发现在我了解了C#这几个版本如何进化的后,我真心觉得以前写的代码都是用的C#1.0啊,感觉自己太落后,太低端了。 这些是我看了《深入理解C#》后得到的。 我们来看看C#几个版本写的一个类。 C#1.0: 3个缺点 using System.Collections; class C1     {         //(1)此处创建属性和变量的代码过于复杂

Lorwy的专栏 931

C# 6.0与Visual Studio 2015:经典入门指南

索引操作符()是C# 6.0中的一项新特性,它提供了一种不同于传统基于零的索引方式。在C#中,索引操作符允许我们使用负数从序列的末尾开始索引。例如,^1代表序列的最后一个元素,^2代表倒数第二个元素,依此类推。这种从末尾开始的索引方式非常直观,对于处理数组、列表等序列时尤其有用。范围操作符(..)允许我们指定序列中的一个起始点和终点,并生成一个新的序列。它使用两个索引,并且包括起始点,但不包括终点。范围操作符在处理集合或数组的子集时非常有用,它使得代码更加简洁和易于理解。

weixin_35811662的博客 1156

C# 6.0 Cookbook第四版读书笔记

本文是《C# 6.0 Cookbook》第四版的读书笔记。通过详细解读书中关于C#编程语言中类和泛型的使用,特别是如何创建可比较、可排序的类以及如何通过out参数返回多个值等知识点,为读者提供了深入理解C#编程技巧的途径。文章还讨论了如何高效地使用Safari在线图书资源,并对书籍作者和贡献者表示感谢。

weixin_42443533的博客 485

C#经典书籍

C#经典书籍书  名:.NET大局观( 第2版) 作  者:David Chappell 译者:荣耀微软 .NET对基于Windows的软件开发起到了革命性的影响。通过为开发人员提供一个可以创建范围广泛的应用程序的多语言环境,.NET已经发展为新一代Windows软件的基础。自从2002年最初发布至今,.NET技术改变了几乎所有Windows应用程序的构建方式。针对 .N

baillang2008的专栏 2344
上一篇: IE和FireFox浏览器的兼容问题( IE ->FF )
iteye_808
博客等级 码龄8年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值