C#语言的知识

一、第一个C#语言

1、 C#程序和.net

1.1、C#程序是什么?

​ C#程序:是C#语言编写程序的工具

1.2、 .net是什么?

​ .net:C#运行的环境

2、认识C#程序中的一些关键字

2.1、namespace关键字

​ namespace:命名空间,是C#中组织代码的方式

​ 作用:类似于Java中的package(包)。

2.2、using关键字

​ using:用来引用命名空间。

​ 类似于Java中的import关键字

2.3、class关键字

​ class用来定义类,C#中不要求类名必须与源文件的名称一样。

2.4、Main( )方法

​ 1.Main方法的四种语法:

static void Main(string [] srgs)
static void Mian()
static int Main(string [] srgs)
    static int Mian()

3、C#中的数据类型

数据类型 含义
int 整型
float 单精度浮点
double 双精度浮点
string 字符串
bool 布尔
array 数组

4、C#中的变量

4.1、变量的声明与赋值

​ 语法:

​ 数据类型 变量名 = 值;

例:

int a = 12;
//声明了一个为a的整型变量,并给它赋初始值为12;

4.2、变量 的命名规则

​ 1、只能是字母、数字和下划线组成。

​ 2、不能以数字开头。

​ 3、不能使用C#语言的关键字。

​ 4、使用驼峰命名法。

4.3、C#中的常量

​ 1、 语法:

const 数据类型常量名称 = 值;

​ 2、常量的命名规范

​ (1)常量名称必须具有一定的实际意义 。

​ (2)常量名称最好以大写字母来命名,中间可根据意义的连接性用下划线做连接,每个常量定义的右侧最好有简单的注释,说明起作用。

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

5、C#中的输入输出

5.1、C#输出的三种方式

​ (1)Console.WriteLine();

​ (2)Console.WriteLine(“要输出的值”);

​ (3)Console.WriteLine(“格式字符串”,变量列表);

5.2、C#的输入

​ 语法:Console.ReadLine();

6、类和对象

6.1自定义方法

​ 语法:

​ [访问修饰符] 返回值类型 方法名(参数列表)

​ {

​ //方法的主体

​ }

​ 1.访问修饰符的分类

​ pubic:公共的

​ private:私有的

​ projected:受保护的

​ internal:默认的

​ 2.方法的返回值类型

​ 可以是int、float、double、bool、string等。如果方法不返回值,需要使用void关键字。

​ 3.方法名

​ 每个定义的方法都要有一个名称。

​ 4. 参数列表

​ 调用有参方法是,可以向方法中传递参数。

​ 5.方法的主体

​ 方法实现某一特定功能的代码。

6.2、理解类和对象

​ 1、定义类的语法:

​ [访问修饰符] class 类名

​ {

​ //类的主体

​ }

6.3、注释

​ 1.分类

​ C#中的注释分为:单行注释、多行注释和折叠注释。

​ //:单行注释

​ 多行注释:文档注释:/// 和 块注释:/**/

​ 折叠注释:#region

​ #endregion

6.4、调试

​ 1.调试所用的快捷键

​ F5:开始调试

​ Shift+F5:停止调试

​ F9:设置或取消断点

​ Ctrl+F9:取消断点

​ F10:单步执行

​ F2:转到所调用过程或变量的定义。

​ Ctril+F2:将焦点转移到类的下拉列表。

二、C#语法快速热身

1、C#中的结构分类

​ (1)、顺序结构

​ (2)、选择结构

​ (3)、循环结构

2、顺序结构

​ 执行按照从上到下的顺序执行。

3、选择结构

3.1、分类

​ (1)、if选择结构

​ (2)、switch结构

3.2、语法

1、if结构:

​ if后面括号中的条件会产生一个bool值,为true或false。

​ (1)、简单if语法结构:

​ 当if里面条件成立时,就执行里面的代码块。否则就执行if大括号后面的。

			if(条件){
				//代码块
			}

​ (2)、if-else语法结构:


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

​ 如果if括号里的条件成立,就执行代码块1,如果不成立就执行代码块2。

​ (3)、多重if选择结构:

			if(条件1){
				//代码块1
			}else if(条件2){
				//代码块2
			}else{
				//代码块3
			}

​ 先判断条件1,为true就执行代码块1,不成立就判断条件2,为ture就执行代码块2,如果都不成立,就执行代3。

​ (4)、嵌套if选择结构:



			if(条件1){
				if(条件2){
					//代码块1
				}else{
					//代码块2
				}
			}else{
				//代码块3
			}

里面的if条件判断是基于外面的if条件上的,如果外面的条件为false,里面的就不会判断。else永远是与离自己最近的并没有被配对的if进行配对。

逻辑运算符:当同时有多个条件的时候就需要用逻辑运算符。

运算符 含义 作用
&& 逻辑与 多个条件同时满足
|| 逻辑或 多个条件只需要满足一个
逻辑非 取所得值的相反值

三目运算符语法结构:

​ 数据类型 变量名 = 条件?true:false

​ 与if-else选择结构一样。

2、switch选择结构

1.switch 语法结构如下:

	switch(表达式){
		case 常量1:
			//代码块1;
			break;
		case 常量2:
			//代码块2;
			break;
		......
		default:
			//代码块n;
			break;
	}

4.default:当所有case都不满足的时候,就会进入default,default表示默认,可以省略。

5.break:表示停止,用来跳出当前结构,不可以省略。

4、数组

1.、一维数组

​ 语法:

​ 数据类型 [ ] 数组名;

2、对象数组

​ 语法:

​ 类名 [ ] 数组名 = new 类名[长度];

5、循环结构

1.while循环

语法:

		while(条件){
			//代码块
		}

例如:

	 class Do{
          static void main(String[] args){
			int i = 0;
			while(i<=100){
				Sysotem.out.println("好好学习!");
				i= i+1;
			}
		}
	}
									//好好学习会执行100次

​ 1.执行顺序如下:

​ (1)声明并初始化循环变量。

​ (2)判断循环条件是否满足,如果满足则执行循环操作;否则退出循环。

​ (3)执行完循环操作后,再次判断循环条件,决定继续执行循环或退出循环。

​ 2.while循环的特点:

​ 先判断条件,后执行代码块。所以可能会一次也不执行。

2、do-while循环

语法:

	do{
		//代码块
	}while(条件);

例如:

	 class Do{
         static void main(String[] args)
       		int i=1;
			do{
				System.out.println("好好学习!");
				i++;
			}while(i<=100);
 	   }
	}
								

​ 1.执行顺序:

​ (1) 声明并初始化循环变量

​ (2)执行一遍循环操作

​ (3)判断循环条件,如果循环条件满足,则循环继续执行,否则退出循环。

​ 2.特点:

​ 先执行,再判断,在do-while中,循环体至少执行一遍。

3.for循环

语法:

	for(初始化部分;条件部分;迭代部分){
			//代码块
	}

例如:

	 class Do{
        public static void main(String[] args){
        	for(int i = 0;i<100;i++){
        		System.out.println("好好学习,天天向上!");
        	}

​ 2.执行顺序:

​ (1)执行初始部分(如:int i = 0)。

​ (2)进行循环条件判断 (如:i<100)。

​ (3)根据循环条件判断结果。为true,则执行循环体;为false,则退出循环体。

​ (4)执行迭代部分,改变循环变量值(i++)。

4.foreach循环

​ 语法:

foreach(数据类型 变量名 in 数组名)
{
    //代码块
}

5.二重循环

​ 语法:

for(初始化;循环条件;迭代部分)
{
    for(初始化;循环条件;迭代部分)
    {
        //代码块
    }
}

​ 例如:

static void Main(string[] args)
{
    int i,j;
    for(i=1;i<=5;i++)
    {
        for(j=1;j<=i;j++)
        {
            Console.Write(j);
        }
        Console.WriteLine();
    }
    Console.ReadLine();
}

6、循环的跳转语句

1.循环条件结束

​ 当循环的条件不成立的时候,就会结束循环。

2.强制结束

​ (1)break:用来结束整个循环

​ 当循环执行到某一次循环是,不想再让它继续执行下去的时候,可以使用break。

​ 或者当循环条件永远为true的时候,就必须用break来结束循环,不然就会变成死循环。

​ (2)continue:只能用来结束本次循环

​ 当你有一次循环不需要执行的时候,就可以使用continue跳过。

​ continue后面的语句不会执行,回到循环的下一次开始。

​ 3.break和continue的用法

​ break:可以在循环中使用,也可以在选择结构中使用。

​ continue:只能用于循环结构。

7.冒泡排序

​ 1、算法:

​ 两两相邻进行比较,可以先求出最大值或最小值。

​ 例如:

static void Main(string[] args)
{
    int [] scores = new int[5];
    int i,j;
    int temp;
    Console.WriteLine("请输入5个学员的成绩:");
    for(i = 0;i<scores.Length;i++)
    {
        scores[i] = int.Parse(Console.ReadLine());
    }
    
    //冒泡排序的双重循环
    for(i=0;i<scores.Length;i++)//用来控制次数
    {
        for(j = 0;j<scores.Length-1-i;j++)//用来控制循环的比较情况
        {
            if(scores[j]>scores[j]+1)
            {
                temp = scores[j];
                scores[j] = scores[j+1];
                scores[j+1] = temp;
            }
        }
    }
}

三、使用属性升级MyBank

1、this关键字

​ 含义:this是指当前对象本身,可以引用当前类的属性和方法

2、C#属性

2.1用方法保护数据安全

​ 将控制台输入的东西作为这个方法的参数传递到方法中,在方法中使用if结构进行判断。

2.2用属性实现字段封装

​ 1.C#的属性

​ 语法:

​ private string _name;

​ public string Name;

​ {

​ get{return _name;}

​ set{_name = value;}

​ }

​ get:访问器用来返回相应的私有字段的值。

​ set:访问器用来设定相应的私有字段的值。

​ 2.属性的数据类型

​ 必须与它所访问的字段类型一致。

​ 3.属性的访问类型

​ 只读属性:只包含get访问器

​ 只写属性:只包含set访问器

​ 读写属性:包含get和set访问器

​ 4.对象初始化器

​ 语法:

​ Student stu = new Student(){Name = " ",Age = " "};

23.封装

​ 1、封装是面向对象的三大特性之一,它用于隐藏内部实现,对外只暴露对类的基本操作,而不会让其他对象影响类的内部实现。

​ 2、特点:

​ 1、避免使用非法数据赋值

​ 2、保证数据的完整性

​ 3、避免类内部发生修改时,导致整个程序的修改。

3、值传递和引用传递

​ 1.值传递

​ 当传递的是基本数据类型:形参的改变不会影响实参。

​ 当传递的是引用数据类型:改变的是具体的值的时候形参会影响实参的值。

​ 2.地址传递(引用传递)

​ 使用ref关键字进行传递,实参和形参都需要加ref关键字。

四、深入C#的String类

1.常用的字符串处理方法

方法 含义
bool Equals(string value) 比较字符串之间是否相等
int Compare(string strA, string strB) 比较字符串的大小
int IndexOf(string value) 查找字符,从前开始找
int LastIndexOf(string value) 查找字符,从前开始找
string Join(string separator,string[ ] value) 将数组中的每个字符串用分隔符连接
string[ ] Split(char separator) 分割字符串
string Substring(int startIndex,int length) 截取字符串
string ToLower() 转换为小写
string ToUpper() 转换为大写
string Trim() 去掉前后两端的空格
Replace(string,string) 讲究字符串替换为新字符串

2.Format格式化

1、语法:

​ String myString = String.Format(“格式字符串”,参数列表);

​ {索引[,对齐] [ :格式字符串]}

2、特殊字符

字符 说明
C 货币格式
D 十进制格式
F 小数点后的位数固定
N 用逗号(,)个开的数字
P 百分比计数法
X 十六进制格式

3.类型转换

​ 1、简单的类型转换

​ (1)、隐式类型转换

​ 将同一类型的小的数据类型转换为大的数据类型。

​ 例如:double = float;

​ (2)、显式类型转换

​ 将 ;两种数据类型进行强转。

​ Convert.To数据类型

​ (3)、字符串转换为数值型

​ 只能将数字型的字符串转换为数据型

​ 语法:

int.Parse(Console.ReadLine());

​ 2.使用Convert类进行转换

方法 说明
Convert.ToInt32() 转换为整型
Convert.ToSingle() 转换为单精度浮点型
Convert.ToDouble() 转换为双精度浮点型
Convert.ToString() 转换为字符串类型
发布了7 篇原创文章 · 获赞 0 · 访问量 104

猜你喜欢

转载自blog.csdn.net/weixin_45462325/article/details/102894774
今日推荐