C#笔记.docx
- 文档编号:25518716
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:24
- 大小:2.88MB
C#笔记.docx
《C#笔记.docx》由会员分享,可在线阅读,更多相关《C#笔记.docx(24页珍藏版)》请在冰豆网上搜索。
C#笔记
.NET
.NET是MicrosoftXMLWebservices平台。
XMLWebservices允许应用程序通过Internet进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。
MicrosoftXMLWebservices(微软可扩展网络服务)
.NET
Microsoft.NET(以下简称.NET)框架是微软提出的新一代Web软件开发模型,C#语言是.NET框架中新一代的开发工具。
C#本身是一门语言,他是用于生成面向.NET环境的代码,但其并不是.NET的一部分。
换言之,C#编写 的代码总是运行在.NET Framework中。
而且,在很多时候,C#的特定功能依赖于.NET。
.NETFramework只要包含一个非常大的代码库,可以在客户语言(C#)中通过面向对象编程技术(OOP)来使用这些代码,其目的是,不同操作系统可以根据自己的特性,支持其中的部分或全部模块,例如:
PDA支持所有的核心.NET功能。
部分.NETFramework库定义了一些基本类型,类型是数据的一种表达方式,指定其中最基础的部分(如:
32位带符号的整形),以便使用,.NETFramework在各种语言之间进行交互操作,这称为通用类型系统(CommonTypeSystem,CTS)。
除了提供这个库.NETFramework还包含.NET公共语言运行库(CommonlanguageRuntime,CLR),它负责管理用.NET库开发的所有应用程序的执行。
CIL和JIT
在编译使用.NETFramework库的代码时,不是立即创建专用于操作系统的本机代码,而是把代码编译为通用中级语言(CommonlanguageRuntime,CLR)代码,显然,要执行应用程序,必须完成更多的工作,这是Just-In-Time(JIT)编译器的任务,这些代码并非专用于任何一种操作系统,也非专门用于C#。
读者可以遇到过MicrosoftIntermediateLanguage(MSIL或IL),是CIL原来的名称,许多开发人员仍沿用这个术语。
CLR
CLR常用简写词语,CLR是公共语言运行时(CommonLanguageRuntime)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。
CLR存在两种不同的释义:
公共语言运行时和公共语言运行库。
usingSystem
这个是说你的程序使用了系统的命名空间,比如说你再加一个usingSystem.Data说明使用了data子空间,在你编写不同的程序的时候要使用到不同的空间。
实例:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplication1
{
classProgram
{
staticvoidMain(string[]args)
{
Console.WriteLine("thefirstappinbeginningC#programming");
Console.ReadKey();
}
}
}
示例的说明:
现在不仔细研究这个项目中使用的代码,而关心如何使用开发工具来启动和运行代码,可以用多种方式编译和执行代码,可以按下快捷键F5或者使用工具栏中的图标来调试,也可以按下Ctrl+F5以非调试模式运行代码,控制台应用程序会在执行完毕后立即终止,就无法看到运行的结果,为了解决这个问题,使用Console.ReadKey();所有C#文件都使用.CS文件扩展名
C#的基本语法:
与其他语言的编译器不同,C#编译器不考虑代码中的空格,回车和Tab字符,这些字符统称为空白字符,这样格式化代码就有很大的自由度,C#代码由一系列语句组成,每个语句都用一个分号来结束,C#是一种块结构的语言,所有的语句都是代码块的一部分,这些块用花括号来界定“{}”。
在C#代码中,另一个常见的语句是注释,注释并非严格意义上的C#代码,但代码最好有注释,注释就是自解释,编译器会忽略这些内容,C#添加注释的方式有两种,可以在注释的开头和结尾放置标记,也可以使用一个标记
1./*………*/
2.///…………
3./*…………
………*/
4.//…………
特别要注意的一点是,C#代码是区分大小写的,在上段代码中最重要的部分是:
staticvoidMain(string[]args)
{
//outputtexttothescreen.
Console.WriteLine("thefristappinbeginningC#programming");
Console.ReadKey();
}
在运行控制台应用程序时,就会运行这段代码,更确切的讲,是运行花括号中的代码。
变量
尽管计算机中的所有数据事实上都是相同的东西(一组0和1),但变量有不同的内涵,称为类型。
要使用变量,需要声明它们,既给变量指定名称和类型,声明变量后,就可以把它们用作存储单元,存储所声明的数据类型的数据。
声明变量的C#语法是指定类型和变量名,如下:
如果使用未声明的变量,代码将无法编译,但此时编译器会告诉我们出现了什么问题,所以这不是一个灾难性错误,另外,使用未赋值的变量也会产生一个错误,编译器会检测出这个错误。
sbyte-128到127之间的整数
byte0到255之间的整数
short-32768到32767之间的整数
ushort0到65535之间的整数
int-2147483648到2147483647之间的整数
uint0到4294967295之间的整数
long-9223372036854775808到9223372036854775807之间的整数
ulong0到18446744073709551615之间的整数
一些变量名称前面的“u”是unsigned的缩写,表示不能在这些类型的变量中存储负数,当然,还需要存储浮点数,它们不是整数,可以使用的浮点数变量类型有三种:
floatdoubledecimal。
前两种可以使用
的形式存储浮点数,第三种使用另一种方式
注意组成string的字符数没有上限,因为它可以使用可变大小的内存。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplication3
{
classProgram
{
staticvoidMain(string[]args)
{
//outputtexttothescreen.
//Console.WriteLine("thefristappinbeginningC#programming");
//Console.ReadKey();
intmyInteger;
stringmyString1;
myInteger=17;
myString1="\"myInteger1\"is";“\”转义字符
myString2="thisstringhasa\nlinebreak.";
Console.WriteLine("{0}{1}.",myString1,myInteger);
Console.WriteLine("{0}",myString2);
Console.ReadKey();
}
}
}
名称空间:
名称空间,是.NET中提供应用程序代码容器的方式,这样就可以唯一地标识代码及其内容,名称空间也用作.NETFramework中给项分类的一种方式,大多数项都是类型定义,例如:
本章描述的简单类型(System.Int32)
默认情况下,C#代码包含在全局名称空间中。
这意味着对于包含在这段代码中的项,只要按照名称进行引用,就可以由全局名称空间中的其他代码访问它们。
限定名称空间中定义的名称,就必须包括对该名称空间的引用,限定名称在不同的名称空间级别之间使用句点字符”.”
NamespaceLevelone
{
//codeinLevelonenamespace
//name“Nameone”defined
}
//codeinglobalnamespace
这段代码定义了一个名称空间Levelone,以及该名称空间中的一个名称Nameone,在名称空间Levelone中编写的代码可以使用Nameone来引用该名称,不需要任何分类信息,但全局名称空间中的代码必须使用分类名称Levelone.Nameone来引用这个名称。
创建名称空间后,既可使用using语句简化对它们所含名称的访问,实际上,using语句的意思是“我们需要这个名称空间中的名称,所以不要每次总要求对他们分类”,例如:
NamespaceLevelOne
{
UsingLeveloneTow;
NamespaceLevelTow
{
//name”NameTow”defined
}
}
LevelOne命名空间中的代码现在可以直接使用NameTow引用LevelTow.NameTow.需要注意特别重要的一点:
using语句本身不能访问另一个名称空间中的名称。
移位运算符:
intvar1,var2=10,var3=2;
var1=var2< 结果,var1的值就是40,具体过程如下: 10的二进制是1010,把该数向左移动两位,就得到101000,就是十进制的40,实际上,是执行了乘法操作,每位向左移动一位,该数都要乘以2,所以向左移动两位,就给原来的操作数乘以4,而每向左移动一位,则是给操作数除以2,并丢弃非整数余数,在大多数代码中,都不使用这些运算符,但应知道这些运算符的存在,它们主要用于高度优化的代码,在这些代码中,不能使用其他数学操作,因此它们通常用于设备驱动程序或系统代码。 运算优先级: Goto语句: C#允许给代码行上加标签,这样就可以使用goto语句直接跳转到这些代码行上,该语句的优缺点并存,主要优点是,这是控制什么时候执行哪些代码的一种简单方式;主要的缺点: 过多的使用会使代码晦涩难懂。 Goto语句有它们的作用,但也可能使代码陷入混乱,尽量不要使用它们。 分支 分支是控制下一步要执行哪行代码的过程,要跳转的代码行由某个条件语句来控制,这个条件语句使用布尔逻辑,对测试值和一个或多个可能的值进行比较。 C#中的3种分支技术: 1.三元运算符 2.If语句 3.Switch语句 三元运算符: 这个运算符比较适用于这样简单赋值语句,但不适合于根据比较结果执行大量代码的情形,此时应使用if语句。 If语句: If语句的功能比较多,是有效的决策方式。 与? : 语句不同的是,if语句没有结果,使用该语句是为了有条件的执行其他语句 Switch语句 Switch语句非常类似于if,因为它也是根据测试的值来有条件地执行代码,但是,switch语句可以一次将测试变量与多个值进行比较,而不是仅测试一个条件,这种测试仅限于离散的值,而不是像“大于X”这样的子句,所以它的用法有点不同,但它仍是一种强大的技术。 这里的break语句将中断switch语句的执行,而执行该结构后面的语句。 声明常量需要制定变量类型和关键字const,同时必须给它们赋值,例如: ConstintintTwo=2;这行代码是有效的,但如果编写如下代码: constintintTwo;intTwo=2;就会产生一个编译错误,如果在最初的赋值之后,试图通过任何方式改变常量的值,就会出现编译错误。 下面使用switch语句,测试字符串,将不同的字符串写到控制台上。 这段代码建立了3个常量字符串,接受用户输入的一个字符串,再根据输入的字符串把文本写到控制台上,这里,字符串是用户输入的姓名,在比较输入的姓名时,首先要用name.ToLower()把输入的姓名转换成小写,name.ToLower()是一个标准命令,可用于处理所有的字符串变量,在不能确定用户输入的内容时,使用它很方便。 循环 循环就是重复执行语句,这个技术使用起来非常方便,因为可以对操作重复任意多次,而无需每次都编写相同的代码。 循环的另一个重要类型是一直循环到给定的条件满足为止。 Do循环,do循环以下述方式执行: 执行标记为循环的代码,然后进行一个布尔测试,如果测试的结果为true,就再次执行这段代码,当测试结果为false时就退出循环。 Do循环的结构如下: Do循环至少要执行一次,有时候这种情况并不是很理想。 While循环 While循环非常类似于do循环,但又一个明显的区别: while循环中的布尔测试是在循环开始时进行,而不是最后,但如果测试结果是false,就不会执行循环,程序就会直接跳转到循环之后的代码。 For循环 要定义for循环,需要下列信息: 1.初始化计算器变量的一个起始值 2.继续循环条件,它应涉及到计算器变量 3.在每次循环的最后,对计算器变量执行一次操作 For循环也可以嵌套。 循环的中断 有时候需要更精确的控制循环代码的处理,C#为此提供了4个命令: 1.break----立即中止循环(退出循环,继续执行循环后面的第一行代码) 2.continue----立即中止当前的循环(继续执行下一次循环) 3.goto----可以跳出循环,到已标记好的位置上(如果希望代码易于阅读和理解,最好不要使用) 4.return----跳出循环及其包含的函数 无限循环 可以编写错误代码或者错误的设计,定义永不终止的循环,即所谓的无限循环。 接着阐述另外一些类型的变量: 枚举----变量类型,用户定义了一组可能的离散值,这些值可以用人们能理解的方式使用。 结构----合成变量的类型,由用户定义的一组其他变量类型组成。 数组----包含一种类型的多个变量,可以以索引的方式访问各个数值。 类型转换 前面说过,无论是什么类型,多有的数据都是一系列的位,即一系列0和1,变量的含义是通过解释这些数据的方式来传达的,最简单的示例是char类型,这种类型用一个数字表示,这种类型用一个数字表示Unicode字符集中的一个字符,实际上,这个数字与ushort的存储方式完全相同----它们都存储0~65535之间的数字。 但一般情况下,不同类型的变量使用不同的模式来表示数据,这意味着,即使可以把一系列的位,从一种类型的变量移动到另一种类型的变量中,结果也可能与期望的不同。 这并不是数据位从一个变量到另一个变量的一对一映射,而是要对数据进行类型转换,类型转换采用以下两种形式: 隐式转换: 从类型A到类型B的转换可以在所有情况下进行,执行转换的规则非常简单,可以让编译器执行转换。 显示转换: 从类型A到类型B的转换只能在某些情况下进行,转换规则比较负责,应进行某种类型的处理。 可以安全进行隐式转换的类型: 显示转换 顾名思义,在明确要求编译器把数值从一种数据类型转换为另一种数据类型时,就是执行显示转换,因此,需要另外编写代码,代码的格式将随着转换方法而异。 使用convert命令进行显式转换 很多示例中使用的显式类型转换,如: Convert.ToDouble()等命令。 Convert.ToInt16();是char单精度浮点数; Convert.ToInt32();int Convert.ToInt64();double 转换的名称略不同于C#类型名称,例如,要转换为Int,应使用Convert,ToInt32()这是因为这些命令来自于.NETFramework的System名称空间,而不是本机C#本身。 枚举 迄今为止介绍的每种类型都有明确的取值范围,有些类型的取值非常大,可以看作是连续的,却是一个固定的集合,最简单的示例是bool类型,它只能取两个值: true和false 有时候希望变量提取的是一个固定集合中的值,例如: orientation类型可以存储northsoutheastwest中德一个值,此时可以使用枚举型,枚举就可以完成这个orientation类型的任务,它们允许定义一个类型,其中包含提供的限定值集合中的一个值,所以,需要创建自己的枚举类型orientation,它可以从上述4个值中提取一个值。 接着声明这个新类型的变量: 〈typeName〉〈varName;〉 并赋值: 〈varName〉= 枚举使用一个基本类型来存储,枚举类型可以提取的每一个值都存储为该基本类型的一个值,默认情况下该类型为int,在枚举声明中添加类型,就可以指定其他基本类型: 枚举和结构的区别: 结构可以含有多种数据类型,枚举只能含有一种基本数据类型,而且为整型。 结构 结构就是由几个数据组成的数据结构,这些数据可能具有不同的数据类型,根据这个结构可以定义自己的变量类型 数组(略) Char类型在C语言中占1个字节,在JAVA中占两个字节 函数 我们迄今看到的代码都是以单个代码块的形式出现的,其中包含一些重复执行的循环代码,以及有条件执行的分支语句,如果要对数据执行某种操作,就应把所需的代码放在合适的地方。 这种代码结构的作用是有限的,某些任务常常需要在一个程序中执行好几次,例如: 查找数组中最大的值,此时可以把相同的代码块按照需要放在应用程序中,但这样做也会存在问题,,在某个常见任务中,即使进行非常小的改动,也需要修改很多的代码,这些代码块可能分布在整个应用程序中,如果忘记修改其中的一个代码块,就会产生很大的影响,导致整个应用程序失败。 解决这个问题的方法是使用函数,在C#中,函数是一种方法,可提供在应用程序中的任何一处执行的代码。 函数可以提高代码的可读性,因为可以使用函数将相关代码组合在一起,这样应用程序主体就会非常短,因为代码的内部工作被分解了,这类似于在IDE中使用大纲试图将代码区域折叠在一起,应用程序的结构更加合理。 IDE: IDE(IntegratedDevelopment,集成开发环境)集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。 就是集成了代码编写功能、分析功能、编译功能、debug功能等一体化的开发软件套。 所有具备这一特性的软件或者软件套(组)都可以叫做IDE。 函数定义由以下几部分组成: 1.两个关键字: static和void 2.函数名后面跟圆括号,如write() 3.一个执行的代码块,放在花括号后面 函数Main()是控制台应用程序的入口点函数,当执行C#应用程序时,就会调用它包含的入口函数,这个函数执行完毕后,应用程序就终止了,所有C#可执行代码都必须有一个入口点。 Main()函数和Write()函数的唯一区别是函数名Main后面的圆括号中还有一些代码,这是指定参数的方式 Main()函数和Write()函数都是使用关键字static和void定义的,而void更容易解释,这个关键字表明函数没有返回值。 继续下去,调用函数的代码如下所示: 返回值 通过函数进行数据交换的最简单方式是利用返回值,有返回值的函数会计算这个值,其方式与在表达式中使用变量计算它们包含的值完全相同,与变量一样,返回值也有数据类型 例如: 下面是一个简单的函数,带有两个double参数,并返回它们的乘积: 示例:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 笔记