C#语言总结

                       
                                                                                   

第一个C#程序

一、第一个C#程序的创建

1、新建程序

1、启动Visual Studio 2012

第一次运行Visual Studio 要配置环境,需要花费一定的时间。

2、新建项目

文件 > 新建 > 项目 新建项目

3、生成可执行文件

4、开始运行

调试 > 开始运行 (不调试)

5、F5:启动

6、Ctrl+F5 :开始执行不调试。

2、认识控制台应用程序文件夹的结构

program.cs :该文件是项目的启动文件,在该文件中定义项目的启动入口,即Main()方法。在C#中,程序源文件以.cs作为扩展为。

Hello Word. exe :这个文件位于bin\Debug目录下,是项目编译后生成的可执行文件,可以总结运行。

3、认识C#程序

1、namespace关键词

(命名空间)

2、using关键词

在Java中,如果导入其他包,应该使用import关键词。而在C#中,使用using关键词来引用其他命名空间,它的作用和Java中的import类似。

3、class关键词

是一种面向对象的语言,使用class关键词表示类

4、Mian()方法

跟Java中的main()方法作用是一样的,我程序运行入口,应用程序从这里开始运行。

语法:

static void Main(string[] args){}
static void Mian(){}
static int Main(string[] args){}
static int Main(){}

   
   
  • 1
  • 2
  • 3
  • 4

5、关键代码

Main()方法中添加的两行代码就是这个小程序的关键代码,是用来输出和输入的。

Console.WriteLine("Hello word");
Console.ReadLine();

   
   
  • 1
  • 2

组织代码的方式:C#使用命名空间(namespace),Java使用包(package)。

引入命名空间或包的关键词:C#使用using ,Java使用import。

程序入口:C#的Main()有四种形式,Java的Main()有一种形式。

二、C#的变量和常量

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

C#中布尔型的关键字与Java不同,使用bool,C#中字符串型的关键字首字母是小写的。

在为浮点型变量赋值时,C#语言要求赋值数据必须以字母f或F结束。

2、C#中的变量

语法:

数据类型 变量名称;

   
   
  • 1

C#的变量命名规则与Java也基本相同,只是"$"符号在C#中是不能使用的。

3、C#中的常量

1、什么是常量

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

语法:

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

   
   
  • 1

2、常量命名规范:

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

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

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

三、Console类

1、C#向控制台输出

语法:

方法一:

Console.WriteLine();

   
   
  • 1

方法二:

Console.WriteLine(要输出的值);

   
   
  • 1

方法三:

Console.WriteLine("格式字符串",变量列表);

   
   
  • 1
2、C#从控制台读入

与Console. WriteLine()对应,从控制台输入可以使用Console.WriteLine()方法。

Write是写的意思

Read是读的意思

语法:

Console.ReadLine();

   
   
  • 1

这句话返回一个字符串,可以直接把它赋给一个字符串变量。

四、类和对象

1、自定义方法

语法:

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

   
   
  • 1
  • 2
  • 3
  • 4

​ 1、访问修饰符

​ 2、方法的返回值类型

​ 3、方法名

​ 4、参数列表

​ 5、方法的主体

2、理解类和对象

语法:

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

   
   
  • 1
  • 2
  • 3
  • 4
3、注释

C#的行注释和块注释与Java是完全相同的,分别使用//和//但文档注释与Java中的注释略有不同,C#中使用 “///” ,且文档注释的每一行都以 "///"开头 。

4、Visual Studio调试技巧

1、设置断点(断点:braekpoint)

程序调试时常用的快捷键如下

F5:开始调试

Shift+F5:停止调试。

F9:设置或取消断点

Ctrl+F9:取消断点

F10:单步执行

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

Ctrl+F2:将焦点转移到类的下拉列表框

2、监视变量值

按F5键开始执行程序调试后,在代码编译器窗口下方可以看到一个监视(watch)窗口。

C#语法快速热身

一、选择结构

1、if结构

语法:

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

   
   
  • 1
  • 2
  • 3
  • 4

语法:

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

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

语法:

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

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在这里插入图片描述

语法:

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

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

2、switch结构

Java的语法:

switch(表达式)
{
    case 常量表达式1:
        //语句1;
        break; //可以没有
    case 常量表达式2:
        break; //可以没有
        defailt:
        //语句n;
}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

C#的语法:

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

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
switch(表达式)
{
    case 常量表达式1:
    case 常量表达式2:
        //语句1
        break;  //必须要
.....
    default:
        //语句n
        break; //必须要
}

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

二、数组与循环

1、一维数组

语法:

数据类型[] 数组名;
数据类型 数组名[];

   
   
  • 1
  • 2

但是,在c#中只能使用第一次方式,即不能把方括号放在数组名的后面

语法:

数据类型[] 数组名;

   
   
  • 1

语法:

数组名.Length

   
   
  • 1

同Java一样,访问数组的元素使用的形式,下标从0开始。在C#中我们也把下标叫作索引。

语法:

数组名[下标]

   
   
  • 1

如果在程序中需要得到数组长度,应该使用“数组名.Length” 语句获得,而不是用数组定义的长度。

2、循环结构

1、while循环

while循环是先判断条件是否满足,如果条件成立再执行循环体,

语法:

while(条件表达式)
{
//代码块
}

   
   
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

2、do-while循环

do-while循环是先执行再判断条件,所以至少会执行一次循环体中的语句。

语法:

do
{
//代码块
}while(条件表达式)

   
   
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

3、for循环

for循环常常用在确定循环次数的情况下。

语法:

for(表达式1;表达式2;表达式3)
{
//代码块
}

   
   
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
4、foreach循环

each 是每个的意思,foreach循环结构用于遍历应该数据集合的每一项,需要设置应该标识符依次表示其中的每一项。在循环期间,可以对各数据项执行指定的操作。

语法:

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

   
   
  • 1
  • 2
  • 3
  • 4

语法中的“元素”是一个只读变量。

在这里插入图片描述

3、跳转语句

1、break语句

除了在switch结构中可以使用break语句退出某个case语句外,也可以把它用于for 、while、do-while、foreach 循环结构。break语句将使程序跳出当前循环结构,并继续执行该循环后面的语句。

2、continue语句

continue 语句与break语句类似,它出现在for 、while、do-while、foreach 的循环结构中。但continue语句的作用是退出当前循环结构的本次循环,并开始执行当前循环结构的下次循环,而不是退出当前循环结构。C#中的break、continue语句的作用与Java是相同的。

​ break和continue语句对比
在这里插入图片描述

三、冒泡排序

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

  • N个数字来排队,两两相比靠前。
  • 外层循环N-1,内层循环N-1-i。
  • 如果要降序排序,只要把程序中的大于号换成小于号就行了。

使用属性升级MyBank

一、访问修饰符

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

二、this关键字

在STUdent类中定义了SetName()方法,该方法的参数_name和类成员变量 _name名称相同,this关键字可以区分局部变量和成员变量。

三、C#属性

1、用属性实现字段封装

​ 1、C#属性

在C#中,字段通常是私有的。如果要访问类中的字段,需要通过get和set访问器实现,这种结合了字段和方法的实现方式我们称之为属性(property)。

语法:

private string _name;
public string Name
{
get { return _name;}
set {_name - value;}
}

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

​ 2、属性的数据类型

定义类中的一个属性时,属性的数据类型必须与它所访问的字段类型一致。

​ 3、属性的访问类型

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

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

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

四、值传递

  1. 值传递分为基本数据传递和引用型数据传递
  2. 基本数据类型传递:形参所做修改不会影响实参
  3. 引用型数据类型传递:形参修改堆里面具体值的时候回影响实参

五、引用传递参数

方法中数据的传递除了值传递外,还可以引用传递参数。利用引用传递参数的方式可以在方法条用之后,仍然保留对参数的修改。

六、比较值传递与引用传递

  1. 值传递是将变量的值复制了一份传递给方法,使得该方法的形参和实参的值相同。在调用的方法中修改形参也只是对实参复制品的数据做更新,并没有真正改变实参的值。
  2. 引用传递是将要传递的对象的引用复制给对方的形参,使得被调用的方法直接对引用的对象进行更改,会影响实参原来的值。

深入C#的string类

一、C#中的string类

1、常用的字符串处理方法
方法说明
bool Equals(string value)比较一个字符串与另一个字符串value值的值是否相等。
int Compare(string strA, string strB)比较两个字符串的大小关系,返回一个整数。
int IndexOf(string value)获取指定的value字符串在当前字符串中第一个匹配的位置。如果找到了value,就返回它的位置;如果没找到,就返回-1.
int LastIndexOf(string value)获取指定的value字符串在当前字符串中最后一个匹配的位置。如果找到了value,就返回它的位置;如果没找到,就返回-1.
string Join (string separator,string[] value)把字符串数组value中的每个字符串用指定的分隔符separator连接,返回连接后的字符串
string[] Split (char separator)用指定的分隔符separator分割字符串,返回分割后的字符串数组
string Substring (int startIndex,int length)从指定位置starIndex开始检索长度为length的子字符串
string ToLower()获得字符串的小写形式
string ToUpper()获得字符串的大写形式
string Trim()去掉字符串前后两端多余的空格
2、连接分割字符串

string类另外两个常用方法Join()和Split()方法。它们的分别是连接和分割字符串。

3、Format隔式化

Format()方法允许把字符串、数字或者是布尔类型的变量插入到格式字符串当中,它的语法和Write Line()方法很相似。

语法:

Sting myString = string.Format("格式字符串",参数列表);

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

二、类型转换

1、简单的类型转换

​ 1、瘾式类型转换

​ 对于任何数值类型A,只要其取值范围完全包含类型B的取值范围,就可以隐式转换为类型B。也就是说,int型可以隐 式 转换为float型或double型,float型可以隐式转换为double型。

​ 2、显示类型转换

​ 与隐式类型转换相反,当要把取值范围大的类型转换为取值范围小的类型时,就需要执行显示转换。

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

​ 1、字符串转换为数值类型

​ 可以调用不同的数值类型的Parse()方法

int.Parse(Console.ReadLine());
int.Parse(string);
float.Parse(string);
double.Parse(string);

   
   
  • 1
  • 2
  • 3
  • 4

​ 2、数值型转换为字符串

只要调用ToString()方法就可以了。

int age = 18;
string myage = age.ToString();

   
   
  • 1
  • 2

三、使用Convert类进行转换

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

行显示转换。

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

​ 1、字符串转换为数值类型

​ 可以调用不同的数值类型的Parse()方法

int.Parse(Console.ReadLine());
int.Parse(string);
float.Parse(string);
double.Parse(string);

   
   
  • 1
  • 2
  • 3
  • 4

​ 2、数值型转换为字符串

只要调用ToString()方法就可以了。

int age = 18;
string myage = age.ToString();

   
   
  • 1
  • 2

三、使用Convert类进行转换

方法说明
Convert.ToInt32()转换为整型(int型)
Convert.ToSingle()转换为单精度浮点型(float型)
Convert.ToDouble()转换为双精度浮点型(double型)
Convert.ToString()转换为字符串类型(string型)
               
                                       
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值