版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 C#语言基础,C#.NET是微软公司推出的一种类型安全的、现代的、简单的、由C和C+衍生出来的面向对象的编程序语言。(像Java)掌握C#.NET的特点、程序结构、集成开发环境、C#语言的基本知识等,是利用好C#的前提。,1.1 C#概述,1.1.1 .NET简介 1.NET定义 .NET技术是微软公司推出的一个全新概念,它代表了一个集合、一个环境和一个可以作为平台支持下一代Internet的可编程结构。 .NET平台包括.NET框架和.NET开发工具等组成部分。.NET框架(Framework)是整个开发平台的基础,包括公共语言运行库和.NET类库。.NET开发工具包括Visual
2、Studio.NET集成开发环境和.NET编程语言。,2. 公共语言运行库 公共语言运行库是 .NET Framework 的基础。可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。 (私塾-书院-学校),3.NET框架类库 .NET Framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合。 可使用 .NET Framework 开发下列类型的应用程序和服务: 控制台应用程序。 Windows GUI 应用程序(Windows 窗体)。 ASP.NET 应用
3、程序。 XML Web services。 Windows 服务。,1.1.2 什么是C# C#是微软公司在2000年7月发布的一种全新的简单、安全、面向对象的程序设计语言。它是专门为.NET的应用而开发的语言。它吸收了C+、Visual Basic、Delphic、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。,其特点有: 语言简洁。 保留了C+的强大功能。 快速应用开发功能。 语言的自由性。 强大的Web服务器控件。 支持跨平台。 与XML相融合。,1.1.3 Visual Studio.NET的集成开发环境 .NET开发语言都采用了统一的集成开发环境Visual Stu
4、dio.NET。,Visual Studio起始页,“新建项目”对话框,Visual Studio.NET开发环境,“解决方案资源管理器”窗口,“工具箱”窗口,“属性”窗口,1.1.4 初识C#程序 C#.NET主要用于开发三类程序:控制台程序、Windows程序和ASP.NET程序。C#程序的扩展名为.CS,通过编译器CSC.EXE编译成可执行文件。,【案例1-1】一个简单的控制台程序。 程序运行后显示“欢迎进入C#世界!”,运行结果如图所示。,static void Main(string args) Console.WriteLine(请输入你的名字:); string username
5、= Console.ReadLine(); Console.WriteLine(欢迎0进入C#世界!,username); ,【案例1-2】第一个图形界面程序。 设计一个程序,界面上用一个文本框输入姓名,单击“确定”按钮后,在文本框中显示“欢迎XXX进入C#世界!”,运行结果如图1-10所示。,1.1.5 命名空间(类似Java包) 命名空间就像在文件系统中一个文件夹容纳多个文件一样,可以看作某些类的一个容器。通过把类放入命名空间可以把相关的类组织起来,并且可以避免命名冲突。命名空间既用作程序的“内部”组织系统,也用作“外部”组织系统(一种向其他程序公开自己拥有的程序元素的方法)。,1. 命名
6、空间声明 namespace关键字用于声明一个命名空间。格式如下: namespace 1 . 类型声明 其中name, name1为命名空间名,可以是任何合法的标识符。命名空间名可以包含句号。 例如: namespace N1.N2 class A class B() ,2命名空间的使用 使用using指令能够引用给定的命名空间或创建命名空间的别名(using 别名)。 using 别名 = 类或命名空间名;,3.系统定义的命名空间 命名空间分为两类:用户定义的命名空间和系统定义的命名空间。用户定义的命名空间是在代码中定义的命名空间。,1.2 C#语言基础,1.2.1基本编
7、码规则 1标识符和保留字 C#语言中,标识符是以字母、下划线(_)或开始的一个字符序列,后面可以跟字母、下划线、数字。C#语言区分大小写。一般变量名首字母小写,后面各单词首字母大写;而常量、类名、方法、属性等首字母大写。 具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字。,2书写规则 每行语句以“;”结尾。 空行和缩进被忽略。 多条语句可以处于同一行,之间用分号分隔即可。,3注释 有三种类型的注释语句: /注释一行 /*一行或多行注释*/ /XML注释方式,1.2.2 数据类型 C#语言中的数据类型划分 C#语言的数据类型按内置和自定义划分有内置类型和构造类型。,按数据的存
8、储方式划分,有值类型和引用类型。,Page15,2值类型 各种值类型总是含有相应该类型的一个值。 每当把一个值赋给一个值类型时,该值实际上被拷贝了。相比,对于引用类型,仅是引用被拷贝了,而实际的值仍然保留在相同的内存位置。C#的值类型可以归类如下: 简单类型(Simple types ) 枚举类型(Enumeration types) 结构类型(struct types),【案例1-3】 定义一个职称枚举类型,输出类型中所有枚举常量。,3引用类型 和值类型相比,引用类型不存储它们所代表的实际数据,但它们存储实际数据的引用。在C#中引用类型主要包括object类型、类、接口、string类型、数
9、组,以及委托。这里先介绍一下object,其他内容在后续的章节中介绍。,1.2.3 字符串类(string) 它是System.String类型的别名,表示一个Unicode字符序列。一个字符串可存储将近20亿(231)个Unicode字符。 1字符串的建立 string str=”Hello”;/直接赋值 char ch=C,h,i,n,a;/使用字符数组 string str=new String(ch) /值为China string str1=new String(ch,2,2);/值为in,String 与StringBuilder区别,String 对象是不可改变的。每次使用 Sy
10、stem.String 类中的方法之一或进行运算时(如赋值、拼接等)时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。 而 StringBuilder 则不会。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。,3常用的字符串操作方法 (1)比较两个字符串 可用string.Compare(string strA,string strB)比较两字符串大小,它返回3种可能的结果: 如果strA大于strB,结果为1。 如果str
11、A等于strB,结果为0。 如果strA小于strB,结果为-1。,(2)查找 利用IndexOf(string str)可以查找str在字符串中出现的位置。利用LastIndexOf(string str)可以查找str在字符串中最后一次出现的位置。例如: string str1=this is a string; Console.WriteLine(str1.IndexOf(is);/结果为2 Console.WriteLine(str1.LastIndexOf(is);/结果为5,(3)插入 利用Insert(int startIndex,string str)可以在startIndex
12、处插入字符串str。例如: string str1=this is a string; str1.Insert(2, abc);/结果为thabcis is a string (4)删除 利用Remove(int startIndex,int count)可以删除从startIndex开始的count个字符。例如: string str1=this is a string; str1.Remove(1, 2);/结果为is is a string,(6)分离(cs3.cs) 利用Split(char separator)可以将字符串按照指定的字符进行分离。 string str1=this i
13、s a string; String str=str1.Split( );,(7)复制到字符数组 利用ToCharArray()可以将字符串转换为字符数组。 Char charArray=str1.ToCharArray(); (8)大小写转换 利用ToUpper()可以将字符串中的所有英文字母转换为大写,利用ToLower()可以将字符串中的所有英文字母转换为小写。例如: Str1.ToUpper();/结果为:THIS IS A STRING,(9)去掉前后空格 利用TrimStart()删除字符串首部空格,利用TrimEnd()删除字符串尾部空格,利用Trim()删除字符串首部和尾部空格
14、。例如: string s1= this is a book; string s2=this is a book ; string s3= this is a book ; s1.TrimStart();/删除首部空格,结果为this is a book; s2.TrimEnd();/删除尾部空格,结果为this is a book; s3.Trim ();/删除首部和尾部空格,结果为this is a book;,1.2.4 DateTime和TimeSpan DateTime表示时间上的一刻,通常以日期和当天的时间表示。范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:0
15、0 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间。时间值以 100 毫微秒为单位(该单位称为刻度)进行计量。 TimeSpan表示一个时间间隔。其范围可以在Int64.MinValue 到 Int64.MaxValue 之间。,using System; public class cs4 public static void Main(String args) DateTime dt1 = new DateTime(2010,1,1,1,1,1,1); DateTime dt2 = DateTime.Now; TimeSpan ts = dt2
16、 - dt1; Console.WriteLine(ts); ,1.2.5 Math类 Math类位于System名称空间,为三角函数、对数函数和其他通用数学函数提供常数和静态方法。表1-4列出了Math类的数学函数。,1.2.6 数据类型的转换 1隐式转换和显式转换 (1)隐式转换 隐式转换是系统默认的,不需要加以说明就可以进行的转换。需要注意的是: 字符类型可以隐式转换为整型或浮点型,但不存在其他类型到字符类型的隐式转换。 低精度的类型可以隐式转换成高精度的类型,反之会出现异常。 在浮点型和decimal类型之间不存在隐式转换,因此,在这两种类型之间必须使用显示转换。,(2)显式转换 显式
17、转换又叫强制转换,与隐式转换相反,显式转换需要指明要转换的类型。例如: long x=100; int y=(int)x; using System; public class myclass1 public static void Main() Byte a=2,b;/int8 b = a + 2; Console.WriteLine(b= + b); /会出错吗?,(3)数值与字符串的转换 Int32.Parse(string) Double.Parse(string) 1.2.7常量和变量,1.2.8装箱与拆箱,装箱:值类型赋值给引用类型cszx.cs 拆箱:引用类型赋值给值类型 1.2
18、.9运算符表达式 1.3控制语句 If While For,Cszx.cs,using System; public class cszx public static void Main(String args) int i = 5; Object obj = new Object(); obj = i; Console.WriteLine(obj); int j = (int)(obj); Console.WriteLine(j); ,输入,using System; public class cs5 public static void Main(String args) Console.
19、WriteLine(请输入整数); string s = Console.ReadLine(); int i = Int32.Parse(s); Console.WriteLine(i); ,数组,声明:数据类型数组名; 初始化:数组名=new 数据类型2(,); 声明同时初始化: 数据类型数组名=,遍历输出数组,using System; using System.Text; public class arr public static void Main() string str = 北魏, 西蜀, 东吴 ; for(int i=0;istr.Length ;i+) Console.Wri
20、teLine(stri); foreach(string strName in str) Console.WriteLine(strName); ,多维数组,using System; using System.Text; public class array public static void Main() int, m = 1,2,3, 4,5,6 , 7,8,9 ; for (int i = 0; i 3; i+) for(int j=0;j3;j+) Console.Write(mi,j+ ); Console.WriteLine(); ,数组的数组,using System; using System.Text; public class arrays2 public static void Main() in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度特色农产品品牌授权合同4篇
- 2025年度钻孔工程材料供应承包合同
- 二零二五年度储煤场煤炭储备与应急供应合同4篇
- 2025年度木屋建造与装饰分包工程劳务合同4篇
- 2025版户外运动装备外观设计研发合同4篇
- 二零二五年度智能硬件出借咨询与管理合同4篇
- 二零二五年度殡葬墓地使用权转让合同3篇
- 2025年度智能电网建设与运维服务合同模板4篇
- 二零二五年度智能玻璃门窗销售及安装合同3篇
- 二零二四年度校园早餐服务承包合同范本2篇
- 物业民法典知识培训课件
- 2023年初中毕业生信息技术中考知识点详解
- 2024-2025学年八年级数学人教版上册寒假作业(综合复习能力提升篇)(含答案)
- 《万方数据资源介绍》课件
- 医生定期考核简易程序述职报告范文(10篇)
- 第一章-地震工程学概论
- 《中国糖尿病防治指南(2024版)》更新要点解读
- 初级创伤救治课件
- 交通运输类专业生涯发展展示
- 2024年山东省公务员录用考试《行测》试题及答案解析
- 神经重症气管切开患者气道功能康复与管理专家共识(2024)解读
评论
0/150
提交评论