概念:.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.解决方案可以包括多个项目,一个项目可以包括多个文件,文件就是我们写的程序。c.在文件中,命名空间可以包含多个类,类又可以包含多个方法,我们可以在方法中写程序。d.重置开发环境:可以使我们的开发工具恢复初始状态:工具—>导入导出设置。e.一般的窗口不小心关闭了,可以再视图里面找。f. .sln是解决方案文件,记录着我们这个解决方案下的所有项目;.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); } }