概念:.net与c#
.net/dotnet:一般指.net framework框架,一种平台,一种技术。
c#(c sharp):一种编程语言,可以开发基于.net平台的应用。
(*)java:即是一种技术又是一种编程语言
c sharp是锋利的意思;c 是两个井号(#),c#是四个井号(#)
.net都能干什么
桌面应用程序 winform
internet应用程序 asp.net/webservice
手机开发 wp7、wp8
即:嵌入式开发 windowsce/wince
(*)java中没有winform概念
(*)用.net开发winform是开发桌面应用程序
(*)用.net开发网站是开发asp.net程序,即internet应用程序
(*)windowsphone跟android、ios作对比
架构/模式(一般指网络程序,单机程序不分这个)
c/s:客户机(client)/服务器(server)模式 –>winform
b/s:浏览器(browser)/服务器(server)模式 –>asp.net
微软常干后来居上的事情
java是90年代的一种语言,c#是2k01-2k02年的一种语言
.net开发学习路线
注:jquery是javascript的一种框架、类库
ide介绍
ide(integrated development,集成开发环境)
visual studio 2010简介:
1.一套完整的开发工具
2.用于开发桌面应用程序,asp.net web应用程序、xml、web service、移动应用程序
3.为快速开发提供强大支持
visual studio 介绍
a.c#(类)源文件一般以cs结尾。b.凯发娱发k8的解决方案可以包括多个项目,一个项目可以包括多个文件,文件就是我们写的程序。c.在文件中,命名空间可以包含多个类,类又可以包含多个方法,我们可以在方法中写程序。d.重置开发环境:可以使我们的开发工具恢复初始状态:工具—>导入导出设置。e.一般的窗口不小心关闭了,可以再视图里面找。f. .sln是凯发娱发k8的解决方案文件,记录着我们这个凯发娱发k8的解决方案下的所有项目;.csproj是项目文件。g.在vs中设置字体和颜色:工具—>选项。h.main方法是我们程序的入口方法。当我们执行一个程序时,会首先找到main方法,从main的第一句程序开始执行,当main方法执行完成后(即执行到main方法的反大括号),程序就结束了。对于我们初学者写程序,就写在main方法中。
学会两句话
console.writeline(); //在屏幕中显示()中的内容。console.readkey(); //程序执行到该语句时停止,等待用户输入内容,待用户输入后继续行。console.writeline换行,console.write不换行。在c#中每句话结束以分号(;)结束。
c#中的注释,什么是注释呢?对我们写的程序写注释,注释是给人看的!
第一种:单行注释 以//开头,后面的就是注释内容
第二种:多行注释 以 /*开头 */结束 之间的是注释内容
第三种:文档注释 在方法或类的上一行输入 ///就会产生
.net开发环境(*)
开发工具:visual studio
c# vb.net f# vc .net
c sharp .net framework:提供函数库类库
.net:是一种多语言平台,开发.net可以用多达几十种语言进行开始
java:是一种单语言的平台 一种语言多种平台
变量、数据类型、运算符的理解
1变量
(1)—概念:
☆内存中的存储区域
☆该区域有自己的名称和数据类型
☆该区域的数据可以在同一类型范围内不断变化
注:
1.内存(ram):用于存储正在运行的程序数据(不准确),断电后数据会丢失!2.变量代表着一块内存空间,我们可以通过变量名称向内存存/取数据,有了变量名称我们就可以不用记忆复杂的内存地址。
(2)—为什么要定义变量:
☆用来不断的向内存中存放同一类型的数据
(3)—变量声明及使用
☆先声明,后赋值 int a; a = 2;
☆声明同时直接赋值 int a=2;
☆一次声明多个变量(同类型),多个变量名称之间用逗号隔开,以分号结束.
例如:string wename, lsname, wwname; int weage = 23, lsage = 19, wwage = 21;
(4)—变量命名规则
☆组成:字母,数字,下划线,除此之外不能含有其它的字符。
☆开头:只能以字母、下划线或@开头开头。
☆不能使用的:不能是c#中的关键字。
—变量命名规范
☆变量的名称要有意义,尽量用对应的英文命名,避免使用单个字符作为变量名
☆多使用多个单词组成变量名时,应使用骆驼(cancel)命名法,或帕斯卡(pascal)命名法。
☆如果使用英文单词缩写,全部用大写
(5 )— 使用变量注意
☆c#区分大小写,每个变量都是独立的,不可重复声明,但可重复赋值
☆变量需先声明,再赋值才可使用,未赋值不可使用
2数据类型
(1)—常见数据类型分类:
int: 整数在c#中的数据类型叫int。
double:用于存取小数类型。 char:字符型 只能存储一个字符,并且存储的这个字符要求用单引号引起来。 string类型:字符串。就是把0个或多个字符连接起来,字符串要求用双引号引起来。 decimal:用于金钱上的计算。 注:在c#开发环境中,直接写一个有小数点的数字,这个数字是double类型。 在一个小数后面加m/m,表示decimal类型。
示例:int a=1,b=2;consolewrite(a b); //屏幕显示3;此时表示数学上的加法的意义string a="1";int b=2; 或 (string b"2";)consolewrite(a b);//屏幕显示12;此时表示连接的意思
练习:
定义3个变量,分别存储一个人的姓名(张三),年龄(28),和工资(7600.33).然后在屏幕上显示,我叫xx,今天x岁了,我的工资是xx元.
class program { static void main(string[] args) { string name = "张三"; int age = 28; decimal money = 7600.33m; string phone =" 0755 - 25581383"; // console.writeline("我叫" name ",今年" age "岁了," "我的工资是" money "元。"); console.writeline("我叫{0},今年{1}岁了,我的工资是{2}元,电话号码是{3}", name,age,money,phone); console.readkey(); } }
注:
在console.writeline("")中,第一个变量或字符串可以使用占字符,
占字符由{数字}组成,数字由0开始编号,
第一个占字符{0}
第二个占字符{1}
第三个占字符{2}
console.writeline();有多个参数时,输出都是第一个参数中的内容,从第二个参数开始,
都是用来替换第一个参数中的占位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中,有没有相关的占位符
电话号码要存为string类型
再学习一句话:
用于让用户从键盘上输入一句话,当程序执行到下面这句话,就会暂停,
然后等待用户从键盘上输入一句话,按回车程序将继续执行,如果想得到用户输入的内容,
就需要定义一个string类型的变量,卸载下面这句话前面,
接收用户输入的内容。
console.readline();
接收用户输入的内容,必须定义一个字符串来进行接收。
string input=console.readline();
字符串中的转义
在屏幕上显示: c#中的字符串用” ”号包含起来
\ 一个字符,组成转译字符.一般用于表示特殊符号
@字在字符串前面表示不转译
常用的转译符:\n \b \t \\ \”
字符串前面加一个@符号有两种意义:
1字符串中如果有\,则不再理解为转义字符
2使字符串可以换行定义
注
@必须写在“”之前。示例:想在上面的例子中加入""双引号时,两个“代表一个”。
算术运算符及算术表达式
算术运算符: - * / %(取余数 取模)
算术表达式:由算术运算符连接起来的式子.如:1 1 a-b(变量ab前面已声明并赋初值)
演示:某学生三门课成绩为,语文:90 数学:80 英语:91,编程求总分和平均分.
优先级:先乘除,后加减,有括号先算括号里的,相同级别的从左至右运算
小括号可以无限制的套用,但一定要成对出现.
练习
l 练习1:定义两个数分别为10和20,打印出两个数的和。
l 练习2:计算半径为5的圆的面积并打印出来.
l 练习3:某商店t恤的价格为35元/件,裤子的价格为120元/条.小明在该店买了3件t恤和2条裤子,请计算并显示小明应该付多少钱?
class program { static void main(string[] args) { int a = 10, b = 20; int sum = a b; console.writeline("sum={0}",sum); console.readkey(); } }
class program { static void main(string[] args) { double pi = 3.14; int r = 5; double s = r * r * 3.14; console.writeline("圆的面积s={0}",s); console.readkey(); } }
class program { static void main(string[] args) { decimal t = 35m, k= 125m; int t_number = 3, k_number = 2; decimal sum = t * t_number k * k_number; console.writeline("小明应付{0}元",sum); console.readkey(); } }
-
类型自动转换规则
l 参与运算(算术运算和赋值运算)的操作数和结果类型必须一致. 当不一致时,满足下面条件时,系统自动完成类型转换
l 两种类型兼容
u 例如:int 和 double 兼容
n 目标类型大于源类型
u 例如:double > int
l 对于表达式
n 如果一个操作数为double型,则整个表达式可提升为double型
n 比如前面打8.8折的练习题.
n 求10/3求余数要想得到3.333的处理.
强制类型转换
l 如上题中打完8.8折后出现小数,商店为了结算方便,只收用户整数部分的钱,如本应收用户303.6,现在只收用户303元,应该如何做?
l 语法:
-
(数据类型名)待转换的值;
l 如:
int b = (int)3.14;
强制类型转换,数据类型一定要相兼容 下面的写法对吗?
int number = (int)”3.14”; x
类型转型
l 问题:让用户输入他的语文和数学成绩,计算他的总成绩并显示出来?
l convert不再仅是内存级别的转换,而是考虑数据意义的转换。convert是一个加工、改造的过程
l 通过 convert.toint32(能转换成int类型的数据)来把其他类型数据转换成int类型
注
convert.toint32( ); 只能转换字符串中的整数数字。而一切类型都可以转换成string类型。
-
-
l 练习:
l 让用户输入姓名语文 数学 英语 三门课的成绩,然后给用户显示:xx,你的总成绩为xx分,平均成绩为xx分。
class program { static void main(string[] args) { console.writeline("请输入你的姓名!"); string name = console.readline(); console.writeline("请输入你的语文成绩:"); int chinese = convert.toint32(console.readline()); console.writeline("请输入你的数学成绩:"); int maths = convert.toint32(console.readline()); console.writeline("请输入你的英语成绩:"); int english = convert.toint32(console.readline()); int sum = chinese maths english; double average =1.0* (chinese maths english) / 3; console.writeline("{0}!你的总分数为{1},平均分为{2}", name, sum, average); } }