C#学习笔记.docx

上传人:b****3 文档编号:10855836 上传时间:2023-05-28 格式:DOCX 页数:99 大小:61.46KB
下载 相关 举报
C#学习笔记.docx_第1页
第1页 / 共99页
C#学习笔记.docx_第2页
第2页 / 共99页
C#学习笔记.docx_第3页
第3页 / 共99页
C#学习笔记.docx_第4页
第4页 / 共99页
C#学习笔记.docx_第5页
第5页 / 共99页
C#学习笔记.docx_第6页
第6页 / 共99页
C#学习笔记.docx_第7页
第7页 / 共99页
C#学习笔记.docx_第8页
第8页 / 共99页
C#学习笔记.docx_第9页
第9页 / 共99页
C#学习笔记.docx_第10页
第10页 / 共99页
C#学习笔记.docx_第11页
第11页 / 共99页
C#学习笔记.docx_第12页
第12页 / 共99页
C#学习笔记.docx_第13页
第13页 / 共99页
C#学习笔记.docx_第14页
第14页 / 共99页
C#学习笔记.docx_第15页
第15页 / 共99页
C#学习笔记.docx_第16页
第16页 / 共99页
C#学习笔记.docx_第17页
第17页 / 共99页
C#学习笔记.docx_第18页
第18页 / 共99页
C#学习笔记.docx_第19页
第19页 / 共99页
C#学习笔记.docx_第20页
第20页 / 共99页
亲,该文档总共99页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C#学习笔记.docx

《C#学习笔记.docx》由会员分享,可在线阅读,更多相关《C#学习笔记.docx(99页珍藏版)》请在冰点文库上搜索。

C#学习笔记.docx

C#学习笔记

第一天:

C#是微软公司开发的一种编程语言。

2000年6月发布。

C#是一种面向对象语言(oop:

ObjectOrientedProgramming)

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

C#与JAVA类似,是从C,C++改进来的。

特点:

简单,现代,是面向对象的程序,强大、灵活,包含单词为数不多,是模块化的,C#将流行。

(枯燥无味的特点,个人认为有待于进一步验证。

模块化的,建立了类的概念。

类可以被重复使用,通过给类或方法传递信息,得到所需结果。

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

编程前的准备工作:

首先要明确问题,然后制定解决问题的方案。

方案实现后,对结果进行测试,以了解问题是否得到解决。

(相信很多菜鸟刚接触编程的时候很迷茫,其实很大程度上是没有明确自己要干什么,要解决什么问题。

有了问题才能有相应的解决方法。

而编写一个程序,就是把解决方法通过编程语言来实现。

SO,编写一个程序的步骤:

1.明确编写的程序将要实现何样的功能。

2.确定编写程序时采用何样的方法。

3.创建程序。

4.运行程序,检查结果。

3、4步骤为一个程序的开发周期。

具体过程与JAVA类似,先使用编辑器创建包含源代码的文件。

然后对源代码进行编译,以创建被成为可执行文件或库文件的中间文件。

最后是运行程序,检测能否按照预期的规划情况运行。

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

第一行C#源代码:

System.Console.WriteLine("Hello,Justin!

"); ----输出“Hello,Justin”

编辑器,即开发工具。

推荐使用:

VS2005

保存源代码文件可以任意设置扩展名,习惯通用“.cs”

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

第一个C#程序

classHello

{

staticvoidMain()

{

System.Console.WriteLine("Hello,Justin!

");

}

}

可以使用任意一种文本工具写,另存为hello.cs。

经测试,要编译的文件名是不区分大小写的。

可能使用不同的编译器,操作步骤会有区别。

在这里我是使用的vs2005,在命令行下进行编译。

cschello.cs

会生成一个hello.exe的可执行文件,运行结果是在屏幕上输出Hello,Justin!

结合学习其他语言的过程,重点看了下报错过程。

能将错误具体报出,实在是一件很爽的事情。

用ASP的时候,要不停的response.writeend()痛苦,实在是痛苦。

同样C#也无法判断逻辑上的错误。

OK,第一天顺利结束,并没有碰到无法理解的问题。

友情提示:

学习一门编程一定要动手,动手,动手。

===================================================================

第二天

通过第一天的学习,建立C#编程语言的概念,开发周期:

写代码--编译--运行,开始第二天。

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

大纲:

c#应用程序的组成部分,C#的语句和表达式,面向对象编程技术的特征,封装/继承/多态/重用,在程序中显示基本信息.

从一个C#程序开始分析

//app.cs-Asamplec#application

//Don`tworryaboutunderstanding everthinginthislisting.You`lllearnallaboutitlater!

//--------------------------------------

usingSystem;

classsample

{

   publicstaticvoidMain()

   {

   //Declarevariables

       intradius=4;

       constdoublePI=3.1459;

       doublearea;

       //Docalculation

       area=PI*radius*radius*radius;

       Console.WriteLine("Radius={0},PI={1}",radius,PI);

       Console.WriteLine("Theareais{0}",area);

   }

}

编译后,运行结果:

Radius=4,PI=3.14159

Theareais201.3376

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

首先是注释,分单行注释,多行注释,文档注释三种.

//单行注释内容

/*

多行注释内容

*/

///文档注释内容

文档注释可以用"csc/doc:

***.xml***.cs"来提取成XML文件.(个人认为在编写应用程序的时候用处比较大,平时使用单行注释就足够了)

接下来才是C#语言的组成部分:

a.空白.空白总是被编译器忽略,包括空格,换行符等.(好的编程习惯:

intradius=4;)但是在双引中间的空白不会被忽略.

b.c#关键字.关键字都含有特殊含义,需要被保留.不能将其挪作他用.

c.字面值.这个概念比较抽象,后面有详细介绍.

d.标识符.同样比较抽象的概念.暂切不理.

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

分析上面的程序:

1~4行:

注释

5,7,13,17,21,23行:

空白

6行:

using语句(第六天讲详细介绍)

8行:

类声明(第六天详细介绍)

9,11,26,27行:

标点字符

10行:

Main()

c#将从Main()函数开始执行代码,通过调用函数名来运行.(第七天详细介绍)

14,15,16行:

声明

20行:

赋值语句

24,25行:

调用函数(初学者最难理解的地方)

对比以前了解过的JAVA程序,二者是多么的相似.程序结构几乎是一模一样.

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

面向对象的概念

(听很多人说面向对象程序,但是一直没有明确这个概念.这里要理解的概念性东西含多.当然,个人觉得还是以应用为主,概念不理解,可以以后再搞懂.但是弄清楚概念,对于理解一些书面的东西还是有好处的)

一种语言,它使用对象,具有封装,多态,继承,重用的特点.

封装:

封装指的就是创建"包".用户不用去关心包内的程序是如何执行的,只需要了解如何与包交互.得到所需结果即可.

多态:

多态是呈现多种形态的功能.(看完介绍还是不太理解,11天有详细介绍)

继承:

(不理解,还是不理解.懵懵懂懂,一知半解的,跳过)

重用:

面向对象最重要的特点.

对象和类的概念跳过,第六天详细介绍.

两个将信息打印到屏幕上的例程:

System.Console.Write()

System.Console.WriteLine()

区别是,WriteLine()在新的一行中输出信息,而Write()在本行输出.

之前程序中用到System.Console.WriteLine("ceshi{0},{1}",ceshi0,ceshi1).类似数组的概念.

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

第二天有很多概念性的问题,需要参照后面的详细介绍进一步理解

从第三天开始,不再是枯燥的概念性东东,将开始介绍数据类型,运算符,语句等编写程序所需要的基本组成.

=============================================================================================================

第三天使用变量存储信息

变量是计算机内存中被命名的数据存储单元.

变量可以存储任意类型的数据.

变量的命名规则:

可以包含数字,字母和下划线;第一个字符只能是字母或下划线(不推荐使用下划线,会降低程序的可读性.);区分大小写;不能将C#的关键字用作变量名.

编程习惯:

变量名使用小写字母,常量使用大写字母.多个单词组成的变量,单词间用下划线隔开.如hello_justin

骆驼表示法(Camelnotation):

将多个单词组成的变量名,每个单词的第一个字母大写.如HelloJustin

变量使用前,需要声明,否则编译器将生成错误信息.

声明格式:

intcount,number,start;

声明多个变量,在一行或多行中生成,对性能无影响,单多行声明可增加程序的可读性;

下面通过一个程序来了解给变量赋值:

//var_values.cs-Alistingtoassignandprintthevalueofavariable

//---------------------------------------------------------------------

usingSystem;

classvar_values

{

   publicstaticvoidMain()

   {

   //declaremy_variable

       intmy_variable;

       //assignavaluetomy_variable

       my_variable=5;

       Console.WriteLine("/nmy_variablecontainsthevalue{0}",my_variable);

       //assignanewvaluetomy_vairable

       my_variable=1010;

       Console.WriteLine("/nmy_variablecontainsthevalue{0}",my_variable);

   }

}

初始化变量:

intmy_variable=1;

声明int型变量my_variable的同时给他赋值为1.这种声明同时初始化的操作,是一个好习惯.

注:

未初始化的变量,在c和c++中是可以被编译的,但c#是不允许使用未初始化变量.

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

变量类型中的数值型:

4类(在这里涉及到各类型数值占用字节数,忘记是学什么的时候接触到了,N久以前的事情.不理解的,需要专门学习下.占用字节数的多少,直接决定取值范围.)

a.整数

细分:

整数(int和uint,4字节),短整数(short和ushort,2字节),长整数(long和ulong,8字节),Byte(byte和sbyte,1字节),字符(char,2字节).

int是带符号的整数,可存储-2147483648()到2147483647之间的整数;uint是不带符号的整数,可存储0~4294967295之间的整数

使用short和unshort,可以在存储整数的同时节省内存.short取值范围,-32768~32767;ushort取值范围,0~65535.

使用long和ulong,可存储非常大的整数.long取值范围,-9223372036854775808~9223372036854775807;ulong取值范围,0~18446744073709551615.

使用byte和sbyte,可存储仅占1字节整数.byte取值范围,-128~127;sbyte取值范围0~255.

使用char可以存储字符.这里引入了Unicode的标准.Unicode将字符和符号都使用一个整数表示.所以可以将char视为整型.

   给char赋值需要使用:

charvariable='hello'

b.浮点数

细分:

float,4字节和double,8字节.

个人认为除特殊用途外,一般很少用到小数.

c.decimal

存储高精度小数,8字节,个人认为使用的几率更小.

d.布尔型

bool.取值只有true(真)或false(假),通常被设置为0或1.

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

常量:

声明常量后,可以防止在使用过程中值被更改

声明规则:

constPI=3.14159;

习惯将常量全部大写.

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

引用类型:

(又一个比较难理解的概念)

按引用存储和按值存储.

基本数据类型,int/char等都是按值存储.

类,字符串,接口,数组,代表(delegate)都是使用按引用存储.

不是很理解按引用存储,个人理解应该是类似数组存储一组数字的概念.后面会有详细介绍.

程序清单3.4中介绍了各个数据类型所需内存空间.

第三天顺利结束,接下来是运算符和语句了.

========================================================================================

第四天 使用运算符

运算符分类:

基本的赋值运算符;数学/算术运算符;关系运算符;条件运算符;其他运算符(类型,大小等).

运算符结构分三类:

单目,双目和三目.

分别使用单个变量(-1),两个变量(1+1)和三个变量(真正的三目c#运算符只有条件运算符).

介绍运算符之前提到标点符号的概念:

a.分号:

主要用于结束一条c#语句,也可以用于控制流程的c#语句.

b.逗号:

用于将多个命令放在同一行中,最多用于声明同一类型的多个变量.

如:

intvar1,var2,var3;

c.圆括号:

用于函数中,使用圆括号来强制改变执行顺序(后面将提到).

d.花括号:

用于代码片段分组.如用花括号来括住类.(花括号自身和括号之间的代码被成为代码块.)

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

赋值运算符:

 =

用于赋值,如:

x=142;将运算符右边的值赋值给左边的变量.

x=y=1;这样的写法是成立的.先将1赋值给y,再将y的值1赋值给x.

1+x=y;是不成立的.也不能将常量或字面值放在赋值运算符的左边.

数学运算符:

加+,减-,乘*,除/,求余%,递增++,递减--.

与数学运算相同.需要注意的是复合运算符+=,-=,*=,/=,%=

对应规则为,x=x+y对应x+=y

x=x-y对应x-=y

x=x*y对应x*=y

x=x/y对应x/=y

x=x%y对应x%=y

使用复合运算符可以使程序更简洁.但程序不容易被理解,可以采用加注释的方法弥补.

递增,递减为单目运算符.运算结果为将变量+1,-1

对应规则为,++x对应x=x+1

--x对应x=x-1

注意先递增和后递增的概念.如x=++y,先将y递增,然后给x赋值.x=y++,则是先给x赋值,然后将y递增.递减同理.

先递增,将递增运算优先执行.后递增,将递增运算符最后执行.

不理解的,可以参考程序清单4.3来理解.

关系运算符:

大于>,小于<,等于==,不等于!

=,大于等于>=,小于等于<=

最终得到的结果只有真和假两个结果

if语句:

-----------大名鼎鼎的if语句啊,使用的太多了.

分析程序来理解if语句.

//iftest.cs-Theifstatement

//----------------------------

classiftest

{

   staticvoidMain()

   {

       intval1=1;

       intval2=2;

       System.Console.Write("Gettingreadytodotheif....");

       if(val1==val2)

       {

           System.Console.Write("Ifconditionwastrue");

       }

       System.Console.WriteLine("Donewiththeifstatement");

   }

}

与其他语言中if语句用法没什么区别,需要注意的是,C#中使用{}来划分代码段.

条件逻辑运算符号:

条件"和"&&,条件"或"||.

&&执行逻辑"与"

||执行逻辑"或"

这里需要参考与非或的逻辑运算.熟悉与非或的运算后,只需要掌握在C#中的逻辑运算符.

逻辑按位运算符:

不在本书存储范围内,可以选择性理解.

类运算符:

在后面介绍类和接口时涉及.运算符typeof,is,as

sizeof运算符:

用于确定值的长度.因sizeof运算直接操纵内存,尽量避免使用.

条件运算符:

condition?

IfTrueStatement:

IfFalseStatement;

condition是条件,结果为true执行iftrueStatement,结果为flase执行iffalsestatement.

运用条件运算符,可以使代码更简洁,但是代码的可读性会降低.一般用来替代if语句.

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

运算符的优先级:

表4.3详细介绍了运算符的优先级.与其他编程语言相比,运算符优先级并没有什么区别.

可以通过括号来改变运算的优先级,括号内的运算,总是优先执行.

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

转换数据类型:

将一种类型变量的值赋给另一种类型的变量,需要先进行类型转换.对不同类型的数值进行运算,也需要先转换类型.

分显式和隐式两种.

隐式转换自动进行,显式转换需要强制转换.格式为:

ToVariable-(datatype)FromVariable;

表4.4介绍了需要进行显式转换的类型.

隐士转换与运算数提升(operanolpromotion)相关.

当两个变量执行基本的算术预算时,执行前会被转换成相同的数据类型.

提升次序:

byte,int,uint,long,ulong,float,double,decimal.

按位运算符,顾名思义,按每个变量的存储单元进行运算.实质上是翻译成ASCII码后再运算.很少用到

第四天O了.数据类型与运算,一门编程语言中基础的基础.

================================================================================================

第五天控制语句

按照改变流程的方法可分为选择语句和循环语句.

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

选择语句,可以根据条件的结果执行特定的代码段.if和switch都是选择语句.

if...else语句的格式

if条件

{

结果1

}

else

{

结果2

}

当条件为真时,执行结果1,为假时执行结果2.

switch...case...break语句的格式

switch(条件值)

{

case值1:

结果1;

break;

case值2:

结果2;

break;

default:

上述条件均不满足时输出的结果;

break;

}

每条case语句都以break为结束.如果条件值与值1,2都不相等,则执行default语句.

当多个条件使用同一种解决方案时.可以使用下面的方案.

switch(条件值)

{

case值1:

case值2:

结果A;

break;

case值3:

case值4:

结果B;

break

default:

结果C;

break;

}

当条件值等于值1或值2时,输出结果A,条件值等于值3或值4时,输出结果值B.

省略break;时,case语句之间不能存在代码.

使用goto命令跳到某个case语句或default语句,格式:

switch(条件值)

{

case值1:

gotocase值3;

break;

case值2:

gotocase值3;

break;

case值3:

结果A;

break;

default:

结果B;

break;

}

sbyte,byte,short,ushot,int,uint,long,ulong,char或文本字符串都可用在switch语句中.

如表达式的数据类型不是上述类型,则需要该数据类型有唯一的一种隐式转换方式可以转换为上述类型.

如果没有隐式转换方式,或转换方式不只一种,就会发生编译错误.

需要注意的是,if和switch的条件句后面,没有;来结束.

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

夜深了,洗洗睡了,明天将笔记发到blog上.

可能是今天涉及到的东西与java有很大的相似性,而且没有概念上的疑问,动手写的很少.

这是个不好的习惯,一定要戒除.动手是学习任何一门编程语言的正道.

明天继续循环语句.

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

循环语句:

while,do,for,foreach

while语句,当条件为真时,不断重复执行代码块.

while(condition)

statement(s)

通过一个程序理解while语句

//average.cs-Usingthewhilestatement.

//Printtheaverageof10randomnumbersthatarefrom1to10.

//-------------------------------------------------------------

classaverage

{

   publicstaticvoidMain()

   {

       intttl=0;//varia

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2