C#语言

mac2026-09-30  3

C#语言

一,第一个C#程序

1.1.NET与C#

1…NET是微软为开发应用程序创建的一个富有革命性的新平台,在这个平台环境里可以开发出Windows上几乎所有的程序,C#完全面向对象。

①微软向ECMA申请将C#作为一个标准;

②C#从2.0版本开始,对泛型提供了更完整的支持;

③强大的类库支持;

1.IDE环境

微软推出了强大的平台和技术,并提供了强大的集成开发环境(IDE)来支持,其中Framework2.0的出现标志着.NET Framaorwk真正走向成熟。

1.2第一个C#程序的创建

1.新建程序

①启动程序 ②新建项目 ③生成可执行文件 ④开始运行

2.认识C#程序

1.namespace关键字:namespace(命名空间)是C#中组织代码的方法,作用类似于Java中包这样。

2.using关键字:在Java中如果导入其他包,应该使用import关键字,使用using关键字来引用其他命名空间。

3.class关键字:与Java一样C#也是一种面向对象的语言,使用class关键字表示类。

4.Main()方法

C#中的Main()方法和Java中的Main()方法作用是一样的,是程序运行的入口,但是在C#中Main()方法首字母要大写,Main()方法的返回值可以是void或者int类型。

static void Mian(string[] args) static void Mian() static int Mian(string[] args) static int Mian()

5.关键代码:输入和输出

Console.WriteLine(); //输出语句 Console.ReadLine(); //输入语句

1.3C#中的变量和常量

1.3.1 C#的数据类型 < E m p t y   M a t h   B l o c k > <Empty \space Math \space Block> <Empty Math Block>

常用数据类型JavaC#举例整型intint年龄浮点型floatfloat成绩双精度型doubledouble圆周率字符串型Stringstring姓名布尔型booleanbool是否是少数民族

1.3.2C#中的变量

语法:数据类型 变量名称;

C#的变量命名规则与Java基本相同,只是“$”符号在C#中是不能使用的,因此变量名规则可以简单总结为以下三点

①组成:由字母,数字,下划线组成,除此之外不能含有其他字符。

②开头:只能以字母或下划线开头。

③不能使用的:不能是C#的关键字。

2.什么是常量

常量就是在程序运行过程中保持不变的量

const 数据类型 常量名=值;

常量的命名规范如下:

1.常量名称必须具有一定的实际意义

2.常量名称最好以大写字母来命名

3.常量名称长度最好不要超过25个字符,否则可读性差

1.4 Console类

这里面的Console是C#中的控制台类,利用他方便进行控制台的输入和输出。Console.WriteLine和Console.Write的区别就是前者换行后者不换行,常用的Console.ReadLine();该方法返回string类型。

方式一: Console.WriteLine(); 方式二: Console.WriteLine("格式字符串",变量列表); Console.WriteLine("我的课程是:{0}",cous); //用占位符输出 Console.WriteLine("我的课程是:"+cous);//用+号输出

这里面”我的课程是:{0}",cous“就是格式字符串,{0}叫做占位符,它占的就是后面cous变量的位置。

1.4.2 C#从控制台读入

与Console.WriteLine()对应,从控制台输入可以使用Console.ReadLine()方法,.Write是写的意思,Read是读的意思。

Console.ReadLine();

类型转换:int.Parse()方法的作用是把字符串转换为整数;

int a=int.Parse(Console.ReadLine());

1.5 类和对象

15.1 自定义方法

[访问修饰符] 返回值类型 方法名 (参数列表) { //方法的主体 }

1.访问修饰符:public(公有的)private(私有的)

2.方法的返回值类型:可以是基本数据类型的 如果不需要返回值需要使用void关键字。

3.方法名:每个自定义的方法都有一个方法名。

4.参数列表:调用方法时,可以向方法中传递参数,这些参数构成了参数列表。

5.方法主体:方法主体就是这个方法实现某一特定功能的代码。

1.5.2 理解类和对象

类是创建对象的模板,对象是类的一个具体实例,这就是类和对象之间的关系。

[访问修饰符] class 类名 { //类的主体 }

1.5.3 注释

单行:// 多行:/* */ 文档:/// 折叠:#region #endregion

调试:①F5开始调试 ②F9设置或取消断点 ③F10单步执行

二,C#语法快速热身

1.选择结构

1.1.1 i f结构

if(表达式) { //代码块 } if(条件表达式1) { //代码块1 } else if(条件表达式2) { //代码块2 }

注意:①只有满足外层if的条件时,才会判断内层if的条件。②else与离它最近的那个缺少else得if匹配。

规范:①应该把每个if或else包含得语句都用大括号括起来。②相匹配的一对if else应该左对齐。

2.switch结构

C#语言要求每个case和default语句中都必须有break语句,除非case中没有其他语句,另外C#中的switch判断更加灵活,判断的表达式或变量都是以字符串类型。

switch(表达式) { case 常量表达式1: //语句1 break; ...... default: //语句n; break; //必须有 }

switch结构中case句子的摆放是没有顺序的,可以把default句子放在最前面,但是任何两个case语句不能有相同的值。

case句子中的值必须是常量表达式,不允许使用变量。

3.数组和循环

2.2.1 一维数组

数据类型 [] 数组名; 数据类型 数组名[]; 例如: int[] array;

2.2.2 循环结构

while(条件表达式) { //代码块 } //先判断条件是否满足,如果条件成立就执行循环体 do { //代码块 }while(条件表达式); //先执行再判断条件 for(表达式1;表达式2,表达式3) { //代码块 } foreach(元素类型 元素变量名 in 数组) { //代码块 }

以上有一个新的循环就是foreach循环,each是每个的意思,foreach循环结构用于遍历一个数据集合的每一项。

注意:foreach结构不能改变数组中各元素的值;如果需要改变数组中元素的值,应该使用for循环。

循环的区别:

while循环:先判断条件是否成立,若条件成立,则执行循环条件。

do—while循环:循环体先执行一次,再判断条件是否成立。

for循环:必须使用整型变量做循环变量计算器。

foreach循环:用于遍历给定数组的所有值。

4.跳转语句

1.break语句:

除了在switch结构中使用break退出整个case语句外,也可以用于while,do—while循环等,break语句将程序跳出当前循环结构,并继续执行该循环体后面的语句。

2.continue语句:

与break语句类似,continue的作用与Java是相同的即跳出本次循环进入下一轮循环。

4.冒泡排序

1.冒泡排序算法

冒泡排序就像它的名称一样,冒泡排序是从底层的元素开始,比较它和它上方紧挨着的元素,如果下面的元素小于上面的元素,就交换它的位置,否则保持原样,如此重复下去,直到所有的元素按从小到大的顺序排列。使用二重循环来排列。

冒泡排序速记口诀(升序):

1.N个数字来排队,两两相比小靠前。

2.外层循环N-1,内层循环N-1-I。

3.如果要降序排列,只要把程序中的大于号换成小于号。

三.使用属性升级MyBank

3.1private访问修饰符

访问修饰符:public(公有的) private(私有的) 有什么区别呢?

如果将某个字段或者方法声明为public,就表示其他类可以访问这个字段或方法,如果声明为private,那么该字段或方法只能在本类中使用。

如果在成员定义之前没有指定修饰符,那么这个类成员的访问权限默认为internal.

访问修饰符访问权限访问级别public不受任何限制最高private只有类的内部可以使用最低

3.2 this关键字

使用this关键字可以解决成员变量和局部变量名称的冲突问题。

this是当前类的引用,不能在静态成员中引用。

this关键字代表的是当前的对象,在类的内部,可以用this关键字访问类的成员。

3.3 C#属性

1.用方法保证数据安全

2.用属性实现字段封装:

封装是将数据和操作方法保存在一起的技术,或者有选择的隐藏或公开类中的属性和方法。

private string name; public string name { get{return name;} //只读 set{name=value;} //赋值(只写属性) }

3.4 值传递和引用传递

值传递:分为基本数据类型和引用数据类型:

基本数据类型:形参所作修改不会影响实参。

引用:(传递是数组,传引用类型的时候)形参如果修改具体的值会影响实参。

引用传递: 无论是形参还是实参所作修改都会受影响。

public void show() { .... int num1 ,num2; swap(ref num1,ref num2); } public void Men(ref int num1,ref int num2) //ref关键字修饰的参数可以将被调用方法中参数的更新值传递给调用者 { ...... }

四.深入C#的String类

4.1 常用的字符串处理方法

方法说明string Trim()去掉字符串前后两端多余的空格bool Equals(string value)比较一个字符串与另一个字符串value的值是否相等,若两者相等,返回true否则 返回falseint IndexOf(string value)获取value所在的指定的位置int lastIndexOf(string value)获取指定的字符串value在当前字符串中最后一个匹配的位置string Substring(int sta)从指定位置sta开始检索长度为length的字符串string ToUpper()获得大写的形式string ToLower()获得字符串的小写形式string []Split(char separator)用指定的分隔符separator分割字符串,返回分割后字符串的数组

1.比较“==”和“Equals()”方法:

运算符""和“Equals()”应用于两个字符串,所判断的内容是有区别的,简单来说”“判断的是两个字符串对象在内存中的首地址,即判断是否是同一个对象。

“Equals()”方法判断的是两个字符串对象的值是否相等。

2.连接分割的字符串:

通常有两种方法 Join()和Split()方法。

//输入提示 Console.WriteLine("请输入一个字符串"); intput=Console.Readine(); //以空格作为分隔符分割字符串 a=input.Split(' '); //将分割后的字符串使用下划线连接 b=input.Join("-",input);

4.2 Format格式化

客户大多数都需要按照特定的格式在屏幕上输出程序数据,C#的string类提供的一个Format()方法对输出的字符串进行格式化,Format()方法允许把字符串,数字或布尔类型变量插到格式化字符中。

String myString =String.Format("格式化字符串",参数列表); {索引 [,对齐] [: 格式字符串]}

例如:

String myString =String.Format("{0} 乘以 {1} 等于 {2}",2,3,2*3);

​ 格式化数值结果表

字符说明示例输出C货币形式String.Format("{0:C3}",2000)¥2000.00D十进制形式String.Format("{0:D3}",2000)2000F小数点后的位数固定String.Format("{0:F3}",2000)2000.000N用逗号(,)隔开的数字String.Format("{0:N}",25000)250.000P百分比计数字String.Format("{0:P3}",0.29768)29.768X十六进制格式String.Format("{0:X000}",12)C

4.3 类型转换

1.简单的类型转换

①隐式类型转换:int型可以隐式转换为float型或double型,float型可以隐式转换为double型。

②显示类型转换:也就是所谓的强制转换。

2.数值类型与字符串之间的转换

①字符串转换为数值型

整型:int.Perse(string);

单精度浮点型:float.Perse(string);

双精度浮点型:double.Perse(string);

3.使用Convert类进行转换

方法说明Convert.ToInt32()转换为整型(int 型)Convert.ToSingle()转换为单精度浮点型(float型)Convert.ToDouble()转换为双精度浮点型(double型)Convert.ToString()转换为字符串类型(string型)

类型转换的使用情况:

隐式类型转换:常用于数值型之间,将取值范围小的数值类型转换为取值范围大的数值类型。

显示类型转换:常用于数值型之间,将取值范围大的数值类型转换为取值范围小的数值范围

Parse()方法:将字符串转换为其他类型

Convert类:任何基本数据之间的相互转换。

最新回复(0)