C#编程基础笔记1.docx

上传人:b****5 文档编号:6892093 上传时间:2023-01-12 格式:DOCX 页数:84 大小:54.79KB
下载 相关 举报
C#编程基础笔记1.docx_第1页
第1页 / 共84页
C#编程基础笔记1.docx_第2页
第2页 / 共84页
C#编程基础笔记1.docx_第3页
第3页 / 共84页
C#编程基础笔记1.docx_第4页
第4页 / 共84页
C#编程基础笔记1.docx_第5页
第5页 / 共84页
点击查看更多>>
下载资源
资源描述

C#编程基础笔记1.docx

《C#编程基础笔记1.docx》由会员分享,可在线阅读,更多相关《C#编程基础笔记1.docx(84页珍藏版)》请在冰豆网上搜索。

C#编程基础笔记1.docx

C#编程基础笔记1

C#编程基础笔记

Winform

解决方案中可以包含多个项目,项目可以包含多个文件,文件中是我们写的程序。

认识程序:

一段程序代码最前面几行类似“usingsystem;”的,是引用命名空间。

定义命名空间,用“namespace”。

格式:

namespace命名空间的名称

定义类,用“class”.

在cs文件中,命名空间中可以包含类,类中可包含方法,方法中可以是程序。

在C#中,类文件是以cs为扩展名的。

重置开发环境:

“工具”—“导出和导入”,可以使开发工具恢复初始状态。

功能面板不小心关闭了,在视图中找。

main方法是我们程序的入口方法,当我们执行一个程序时,会首先找到

main方法,从main方法的第一句程序开始执行,当main方法执行完成后,程序就结束了。

所以,我们初学者写程序,就先写在main方法中。

在VS中,右键单击“方案”,选择“在windows资源管理器中打开“可以打开保存该解决方案的目录。

目录中扩展名是”.sln“的文件就是解决方案的文件。

项目文件夹中扩展名是”.csproj“的文件就是项目文件。

要想编辑,一般就是打开解决方案文件。

这样,其中包含的多个项目就可以一次性全部打开。

第一句程序:

Console.WriteLine(“HelloWorld!

”);//向屏幕输出

Line表示输出一个换行。

后面再输出的内容会另起一行显示。

第二句程序:

Console.ReadKey();

//当程序执行到Console.ReadKey();时,程序会停到这里,等待用户从键盘上键入一个键。

用户键入这个键之后,程序才会结束运行。

在C#中,每一个程序语句都以分号结束。

设置VS中的字体、行号:

工具-选项

创建多个项目——右键点解决方案—添加—新的项目

启动项目的设置:

当解决方案中有多个项目时,如果想运行其中一个项目,就右键单击它,选择“设为启动项“即可,这时项目名称会以粗体显示。

项目的加载与卸载:

右键单击项目,选择“卸载项目“即卸载了该项目。

再次右键单击这个项目,选择”加载“就会重新加载这个项目。

C#中的注释符:

单行注释:

以//开始,它只影响本行

多行注释:

以/*开始,以*/结束,它们之间的多行内容都被注释。

文档注释:

用于对类和方法进行注释,在类或方法前面,连续输入三个/。

编写程序,要养成善于写注释的好习惯。

技巧:

复制对话框中的文字——Ctrl+c

撤销快捷键:

Ctrl+z

下面的指令可以折叠一段代码:

#region和#endregion——用法:

把被折叠的代码放入它们中间即可。

.NET是一种多语言的平台,开发.NET可以用多达几十种语言进行开发。

Java是一种单语言的平台。

一种语言多种平台

MSIL,微软中间语言

在VS中,输入“Console.WriteLine();”时,有快捷的方法:

即输入cw后,再敲tab键,就会自动把这个语句补充完整。

变量

计算机使用内存来存储数据。

内存用于正在运行的程序数据

变量代表着一块内存空间,我们可以通过变量名称向内存存取数据,有了变量就不需要我们记忆复杂的内存地址了。

声明变量就是向内存申请一块内存空间

声明变量的语法格式:

数据类型变量名

intnumber//声明变量number,整数类型叫int。

赋值:

变量名=值

如:

number=1000;

数据类型:

int整型

long长整型

double浮点型,用于存储小数

char字符型:

只能存储一个字符,并且存储的这个字符要求用单引号引起来。

转义字符也属于char类型。

string字符串类型:

就是把0个或1个或多个字符连接起来,字符串要求用双引号连起来。

decimal类型:

decimal关键字表示128位数据类型。

同浮点型相比,decimal类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。

注:

在VS中,将鼠标放在数据类型的关键字上,按下F1键,即可调出关于这种数据类型的详细信息。

在C#开发环境中,直接写一个有小数点的数字,则这个数字是double类型的。

如果想将有小数点的数值赋给decimal类型的变量,就要在这个数值的后面加一个字母M或者小写m,以表示此小数是decimal类型而不是double类型。

decimalmoney;

money=1000.25m;

变量的声明

语法格式:

数据类型变量名称;

变量的声明的三种方法:

⑴、声明后再赋值:

intage;

age=18;

⑵、声明时直接赋值:

intage=18;

⑶、可以一次声明多个相同类型的变量,变量名之间用逗号分隔:

stringzsName,lsName,wwName;

intzsAge=18,lsAge=20,wwAge=22;

变量一定要先声明后赋值,然后才能使用(取值、调用或写这个变量名)

写程序时注意错误和警告提示,要把警告当错误对待,以防止程序出错或浪费内存空间。

赋值运算符和赋值表达式

a=a+1;这里的=号是赋值运算符,不是数学意义上的相等。

变量可以重复赋值,但是,一旦给一个变量赋了新值,那么变量中的老值就不存在了。

变量的命名规则:

⑴、必须以“字母”、_或@符号开头;字母二字加双引号意思是,可以是以字母开头也可以是中文或其它国家语言符号开头。

不能以数字开头。

⑵、后面可以跟任意“字母”、数字、下划线;

注意:

①、变量名不要丐C#系统中的关键字重复;

②、在C#中,大小写是敏感的;即区分大小写,也就是大小写被认为是不同的变量。

③、同一个变量名不允许重复定义(说法不严谨)。

在相同范围内不能重复定义。

定义变量时,变量名要有意义。

C#变量命名编码规范——Camel命名法:

首个单词的首字母小写,其余单词的首字母大写。

Pascal命名规范:

每一个单词第一个字母都大写。

如果使用到英文单词的缩写,全部用大写!

在方法中定义变量,要使用Camel命名法。

点位符的使用{0}{1}{2}

交换两个变量的值,如下:

inta=10;

intb=5;

inttemp;

temp=a;

a=b;

b=temp;

再学习一句话:

Console.ReadLine();

用于接收用户的输入,要定义一个字符串变量用来接收存储用户输入的值。

当程序执行到这句话时,就会暂停,然后等待用户从键盘上输入内容,敲回车程序将继续执行。

如果想得到用户输入的内容,就需要在语句Console.ReadLine();前面定义一个string类型的变量,用来接收用户输入的内容。

语句写法:

stringinput;//这个变量必须是字符串型

input=Console.ReadLine();

Console.WriteLine(“刚才输入的内容是:

{0}”,input);

Console.ReadKey();

凡是用户输入的内容都将被当作字符串来处理,所以用来接收用户输入的内容的变量,不能定义成int型,而只能定义成字符串型即string。

如果希望把用户输入的内容用作数字来参与运算,则可以使用类型转换,先把它转换成int型。

stringinput;

input=Console.ReadLine();

可以连起来直接写成一句:

stringinput=Console.ReadLine();

练习1:

Console.WriteLine(“请输入你喜欢吃的水果:

”);

stringinput=Console.ReadLine();

Console.WriteLine(“这么巧呀,我也喜欢吃{0}”,input);

练习2:

Console.WriteLine(“请问你叫什么名字?

”);

stringname=Console.ReadLine();

Console.WriteLine(“你好!

{0}。

”,name);

转义字符

当我们需要在字符串中输入一些特殊字符时,比如半角引号、换行、退格,就需要使用转义字符。

转义字符是一个字符,由一个\加一个字母来组成具有特殊意义的一个字符。

如:

Console.WriteLine(“C#中的字符要用引号\”\”引起来”);

Console.ReadLine();

常用的转义字符:

\n:

表示换行

\b:

表示退格backspace

\t:

tab键,由多个空格组成的一个字符,具有行与行之间的对齐功能

Console.WriteLine(“1\t2\t3\t4\t5”);

Console.WriteLine(“11\t223\t1236\t25\t698”);

\\:

表示输出一个\

\”:

在字符串前加一个@符号有两种意义:

①字符串中如果有\,则不再理解为转义符。

即表示不转义。

②使字符串可以换行。

如:

Console.WriteLine(@”D:

\myDocuments\C#\sql\”);//\照常输出

Console.WriteLine(@”D:

\myDocum

ents\C#\sql\”);//字符串被换行,运行时仍然正常。

如果字符串前面加了@符号,在字符串上用两个双引号代表一个双引号。

算术运算符及算术表达式

算术运算符:

+-*/%(取余数,取模),都是是二元运算符。

算术表达式:

由算术运算符连接起来的式子,如:

1+1、a*b-c(变量acb在前面已声明并赋值)

参与运算的两个操作数的数据类型必须相同,并且经过运算后的结果也与操作数的类型相同。

优先级:

先乘除后加减,有括号先算括号里的,相同级别的从左至右运算。

小括号可以无限嵌套使用,但一定要成对出现。

练习:

两数相除,求结果和余数:

inta=10,b=3;

intmod=a%b;

doublequo=a/b;//两个int类型数值运算的结果必然也是int类型,因此结果是3而不是3.333

Console.WriteLine(mod);因此这样会丢失精度,即舍去了小数部分数值

Console.WriteLine(quo);

Console.ReadKey();

求两个数的和:

intnum1=10;

intnum2=20;

intsum=num1+num2;

Console.WriteLine(”10和20的和是:

”);//语句1

Console.WriteLine(sum);//语句2

Console.ReadKey();

注意:

语句1和语句2可以合起来写成一句:

Console.WriteLine(”10和20的和是:

{0}”,sum);

求半径为5的圆的面积:

doubler=5;

doublePI=3.14;

doubles=r*r*PI;//如果把半径定义为int类型也行,则系统会先自动转换成double型再运算。

Console.WriteLine(”这个圆的面积是:

{0}”,s);

Console.ReadKey();

计算总共应付多少钱及打折后应付的钱数:

doubletixu=35;

doubleduzi=120;

doublemoney=tixu*3+kuzi*2;//实现自动类型转换

doubledismoney=money*0.88

Console.WriteLine(“总共应付{0}元钱,打折后应付:

{1}元”,money,dismuney);

Console.ReadLine();

类型自动转换(隐式转换)

参与运算(算术运算和赋值运算)的手操作数和结果类型必须一致,当不一致时,满足下面条件时,系统自动完成类型转换:

①参与运算的两个数据类型必须相兼容,如:

int和double兼容。

这两者都是数值型,兼容。

②必须一边的数据类型表示范围小,另一边的表示范围大,并且把小的转向大的不丢失精度。

目标类型大于源类型,如:

double>int

凡是会丢失精度的都不会自动转换。

在表达式中,如果有一个操作数是double类型,则整个表达式的运算结果为double型,如前面购物打折的计算。

再如:

inta=10,b=3;doublequo=(1.0*a)/b;,在a/b前面加上个double型数1.0。

注意这里为了便于阅读和理解,加上了小括号。

这是一种好习惯。

这个语句也可以写成:

doublequo=((double)a)/b;

注意:

赋值运算符或算术运算符在进行运算时,要参与运算的操作数的类型必须相同,并且其运算结果也与操作数的类型相同。

doublequo=a/b;右边的运算结果仍是int型,

系统在默认情况下,存在以下预定义隐式转换的情况:

①、从int到long、float、double、decimal的预定义隐式转换。

②、从sbyte、byte、short、ushort、char到int的预定义隐式转换。

在自动转换中,是不会丢失精度的。

如果会丢失精度,则此转换不会自动进行。

经常见到的就是,参与运算的两个操作数,一个是int,一个是double,那么,int类型会自动转换成double类型。

强制类型转换

涉及丢失精度的类型转换,系统不会自动完成,需要人工书写代码来完成。

语法:

(数据类型名)待转换的值

如:

intb=(int)3.14;

强制类型转换时,数据类型一定要相兼容。

比如都是数值型。

注意,下面的两种转换是错误的,因为强制类型转换要求待转换的类型和目标类型必须都为数字。

stringage=(int)Console.ReadLine();

inta=(int)”33”;

Console.ReadLine();接收的数据是字符串类型,因此它不能转换为int类型。

类型转型

将字符串类型转换成数值类型——Convert.ToInt32()

语法格式:

int变量=Convert.ToInt32(待转换的字符串);

上面语法意义:

把待转字符串转换成int类型后赋给变量。

Convert不再仅是内存级别的转换,而是考虑数据意义的转换。

Convert是一个加工、改造的过程。

另,Convert.ToString--每种类型都还有ToString()方法。

一切类型都可以转换成string类型。

如果想把int类型的变量a转换成字符串类型有两种形式:

①、Convert.ToString(a);

②、a.ToString();

例:

Console.WriteLine(“请输入你的年龄:

”);

strings=Console.ReadLine();//把用户输入的内容赋值给字符串变量s。

intage=Convert.ToInt32(s);//把字符串s转换成int32类型再赋给int型变量age。

intyear=2011-age;

Console.WriteLine(“你是{0}年出生的。

”,year);

字符串类型无法参与数据计算,

例:

下面计算的结果不是两个数的和,而是两个字符串的连接:

Console.WriteLine(“请输入语文成绩:

”);

stringChinese=Console.ReadLine();

Console.WriteLine(“请输入数学成绩:

”);

stringmath=Console.ReadLine();

Console.WriteLine(“你的总成绩为:

{0}”,Chinese+math);

Console.ReadKey();

下面计算的是两个数值的和:

Console.WriteLine(“请输入语文成绩:

”);

stringchinese=Console.ReadLine();

Console.WriteLine(“请输入数学成绩:

”);

stringmath=Console.ReadLine();

intchineseScore=Convert.ToInt32(chinese);

intmathScore=Convert.ToInt32(math);

Console.WriteLine(“你的总成绩为:

{0}”,ChineseScore+mathScore);

Console.ReadKey();

简写法:

Console.WriteLine(“请输入语文成绩:

”);

intchinese=Convert.ToInt32(Console.ReadLine());

Console.WriteLine(“请输入数学成绩:

”);

intmath=Convert.ToInt32(Console.ReadLine());

Console.WriteLine(“你的总成绩为:

{0}”,Chinese+math);

Console.ReadKey();

“+”号的意义:

①、作为运算符进行数值运算;

②、连接字符串。

如果“+”号两边是数值型,则是运算意义,如果两边至少有一边是字符串,则是连接意义。

Console.WriteLine(“张三的年龄为:

”+age);

//上面语句括号中,加号可以连接两个字符串,加号两边只要有一块是字符串类型,加号起到的就是连接作用,系统会自动把其它类型转换成字符串类型,在这里,一切数据类型都可以自动转换为字符串类型。

try-catch的使用(简单用法)

try-catch用于捕获程序运行时的错误。

语法格式:

try

{

有可能出现错误的代码写在这里;

}

catch

{

出错后的处理;如果try中的代码出现异常,则进入catch中

}

如果try中的代码没有出错,则程序正常运行完try中的内容后,不会执行catch中的内容。

如果try中的代码一旦出错,程序立即跳入catch中去执行代码,那么try中出错的代码后面的代码就不再执行了。

例如:

try

{

Console.WriteLine(“请输入语文成绩:

”);

intchinese=Convert.ToInt32(Console.ReadLine());//此处有可能会出现用户输入错误

Console.WriteLine(“请输入数学成绩:

”);

intmath=Convert.ToInt32(Console.ReadLine());//此处有可能会出现用户输入错误

Console.WriteLine(“你的总成绩为:

{0}”,Chinese+math);

}

catch

{

Console.WriteLine(“你刚刚输入的数据导致程序出错,请重新运行本程序!

”);

}

Console.ReadKey();

 

练习:

写程序之前要先设计算法,保证自己先知道怎么算

1、让学生输入其姓名和语文、数学、英语的成绩,编程求总分和平均分,并在屏幕上显示:

××,你的总分数为××分,平均分为××分。

Console.WriteLine(“请输入你的姓名:

”);

stringname=Console.ReadLine();

Console.WriteLine(“请输入你的语文成绩:

”);

doublechinese=Convert.ToInt32(Console.ReadLine());

Console.WriteLine(“请输入你的数学成绩:

”);

doublemath=Convert.ToInt32(Console.ReadLine());

Console.WriteLine(“请输入你的英语成绩:

”);

doubleenglish=Convert.ToInt32(Console.ReadLine());

doubletotalScore=chinese+math+english;//此步骤可以直接写到下面的输出语句中

doubleaverage=totalScore/3;//此步骤可以直接写到下面的输出语句中

Console.WriteLine(“{0},你的总分数为{1}分,平均分为{2}分”,name,totalScore,average);

Console.ReadKey();

2、编程实现计算用户输入的天数(如46天)是几周零几天。

Console.WriteLine(“请输入要计算的天数:

”);

intdays=Convert.ToInt32(Console.ReadLine());

intweeks;

weeks=days/7;

intmod=day%7;

Console.WriteLine(“{0}天中有{1}周零{2}天”,day,week,mod);

Console.ReadKey();

3、编程实现:

计算用户输入的天数是几月几周零几天。

假设一个月按30天。

方法一:

Console.WriteLine(“请输入要计算的天数:

”);

intdays=Convert.ToInt32(Console.ReadLine());

intmonth=days/30;//整除得出days中有几个月

intweek=(days-month*30)/7;//得出剩下的天数中有几周

intday=days–month*30–week*7;//得出去掉月数和周数剩下的天数

Console.WriteLine(“{0}天中共有{1}月{2}周零{3}天”,days,month,week,day);

Console.ReadKey();

方法二:

Console.WriteLine(“请输入要计算的天数:

”);

intdays=Convert.ToInt32(Console.ReadLine());

Console.WriteLine(“{0}天中共有{1}月{2}周零{3}天”,days,days/30,days%30/7,days%30%7);

Console.ReadKey();

4、编程实现:

计算107653秒是几天几小时几分钟几秒。

intseconds=107653;

intdays=seconds/(3600*24);//计算seconds中有多少天

intmod=seconds%(3600*24);//除去上面的天数还剩多少秒

inthours=mod/3600;//计算剩余秒数中有多少小时

mod=mod%3600;//取余计算上面剩下的秒数中再除去小时后还剩下多少秒

intminute=mod/60;//计算剩余的秒数中有几个60秒,就是有多少分钟

intsec=mod%60;//取余计算除去分钟数最后还剩下多少秒

Console.WriteLine(“{0}秒中共有{1}天{2}小时零{3}分{4}秒”,seconds,days,hours,minute,sec);

Console.ReadKey();

注意:

语句mod=mod%3600;中变量mod的用法,理解mod参与运算后把结果再次赋给mod。

如果希望让用户输入一个秒数,则只需要在前面程序的基础上做如下改动:

把第一个语句修改成:

Console.WriteLine(“请输入要计算的秒数:

”);

intseconds=Convert.ToInt32(Console.Re

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1