1…NET是微软为开发应用程序创建的一个富有革命性的新平台,在这个平台环境里可以开发出Windows上几乎所有的程序,C#完全面向对象。
①微软向ECMA申请将C#作为一个标准;
②C#从2.0版本开始,对泛型提供了更完整的支持;
③强大的类库支持;
1.IDE环境
微软推出了强大的平台和技术,并提供了强大的集成开发环境(IDE)来支持,其中Framework2.0的出现标志着.NET Framaorwk真正走向成熟。
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.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个字符,否则可读性差
这里面的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());15.1 自定义方法
[访问修饰符] 返回值类型 方法名 (参数列表) { //方法的主体 }1.访问修饰符:public(公有的)private(私有的)
2.方法的返回值类型:可以是基本数据类型的 如果不需要返回值需要使用void关键字。
3.方法名:每个自定义的方法都有一个方法名。
4.参数列表:调用方法时,可以向方法中传递参数,这些参数构成了参数列表。
5.方法主体:方法主体就是这个方法实现某一特定功能的代码。
1.5.2 理解类和对象
类是创建对象的模板,对象是类的一个具体实例,这就是类和对象之间的关系。
[访问修饰符] class 类名 { //类的主体 }1.5.3 注释
单行:// 多行:/* */ 文档:/// 折叠:#region #endregion调试:①F5开始调试 ②F9设置或取消断点 ③F10单步执行
1.1.1 i f结构
if(表达式) { //代码块 } if(条件表达式1) { //代码块1 } else if(条件表达式2) { //代码块2 }注意:①只有满足外层if的条件时,才会判断内层if的条件。②else与离它最近的那个缺少else得if匹配。
规范:①应该把每个if或else包含得语句都用大括号括起来。②相匹配的一对if else应该左对齐。
C#语言要求每个case和default语句中都必须有break语句,除非case中没有其他语句,另外C#中的switch判断更加灵活,判断的表达式或变量都是以字符串类型。
switch(表达式) { case 常量表达式1: //语句1 break; ...... default: //语句n; break; //必须有 }switch结构中case句子的摆放是没有顺序的,可以把default句子放在最前面,但是任何两个case语句不能有相同的值。
case句子中的值必须是常量表达式,不允许使用变量。
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是相同的即跳出本次循环进入下一轮循环。
1.冒泡排序算法
冒泡排序就像它的名称一样,冒泡排序是从底层的元素开始,比较它和它上方紧挨着的元素,如果下面的元素小于上面的元素,就交换它的位置,否则保持原样,如此重复下去,直到所有的元素按从小到大的顺序排列。使用二重循环来排列。
冒泡排序速记口诀(升序):
1.N个数字来排队,两两相比小靠前。
2.外层循环N-1,内层循环N-1-I。
3.如果要降序排列,只要把程序中的大于号换成小于号。
访问修饰符:public(公有的) private(私有的) 有什么区别呢?
如果将某个字段或者方法声明为public,就表示其他类可以访问这个字段或方法,如果声明为private,那么该字段或方法只能在本类中使用。
如果在成员定义之前没有指定修饰符,那么这个类成员的访问权限默认为internal.
访问修饰符访问权限访问级别public不受任何限制最高private只有类的内部可以使用最低使用this关键字可以解决成员变量和局部变量名称的冲突问题。
this是当前类的引用,不能在静态成员中引用。
this关键字代表的是当前的对象,在类的内部,可以用this关键字访问类的成员。
1.用方法保证数据安全
2.用属性实现字段封装:
封装是将数据和操作方法保存在一起的技术,或者有选择的隐藏或公开类中的属性和方法。
private string name; public string name { get{return name;} //只读 set{name=value;} //赋值(只写属性) }值传递:分为基本数据类型和引用数据类型:
基本数据类型:形参所作修改不会影响实参。
引用:(传递是数组,传引用类型的时候)形参如果修改具体的值会影响实参。
引用传递: 无论是形参还是实参所作修改都会受影响。
public void show() { .... int num1 ,num2; swap(ref num1,ref num2); } public void Men(ref int num1,ref int num2) //ref关键字修饰的参数可以将被调用方法中参数的更新值传递给调用者 { ...... }1.比较“==”和“Equals()”方法:
运算符""和“Equals()”应用于两个字符串,所判断的内容是有区别的,简单来说”“判断的是两个字符串对象在内存中的首地址,即判断是否是同一个对象。
“Equals()”方法判断的是两个字符串对象的值是否相等。
2.连接分割的字符串:
通常有两种方法 Join()和Split()方法。
//输入提示 Console.WriteLine("请输入一个字符串"); intput=Console.Readine(); //以空格作为分隔符分割字符串 a=input.Split(' '); //将分割后的字符串使用下划线连接 b=input.Join("-",input);客户大多数都需要按照特定的格式在屏幕上输出程序数据,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)C1.简单的类型转换
①隐式类型转换: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类:任何基本数据之间的相互转换。
