一步一步跟着杨中科.net视频学c#基础,1

2011.2.19 上午

学习扬中科有关.net视频c#基础后总结的知识要点:(这些知识点都是杨中科老师在讲课中提到或课件上的内容,本人将它们搜集整理,希望和大家分享并对想学.network的朋友有所帮助)

1.用C#编写一个10+20=?的小程序:

public static void Main(tring[] args)

{

int i1=10;

int i2=20;

int i3=i1+i2;

Console.WriteLine(i3); //也可用占位符来实现:Console.WriteLine("{0}+{1}={2}",i1,i2,i1+i2);在输出参数较多时候要用占位符

Console.ReadKey(); //注意MS-VS中快捷键ctrl+j的使用

}

2.MS-VS中显示代码行号的步骤:工具>选项>文本编辑器>c#>显示>行号。

3.Ⅰ.c#中转义符“\”的用法:Response.Write(@"c:\...\...\abc.txt")或者是Response.Write("c:\\...\\...\\abc.txt")。@只对转义符起作用,不能够解决字符串中双引号的输出问题;后者比较麻烦,一般不用。

eg:在屏幕上打印“ab”

string s="\"an\"";

Console.Write(s);

Ⅱ.转义符和内存存储无关:

eg:string s =Console.ReadLine(); //Console.WriteLine()返回的内容永远是字符串类型

Console.WriteLine(s);

运行后在屏幕中输入a\nb打印出来的是a\nb;而不是a回车换行b。

Ⅲ:int i=Convert.ToInt32(Console.ReadLine()) //这种写法是正确的,只是没有创建一个容器来存放数据

4.换行符“\n”:Response.Write("a\nb"). //转义符只针对在代码中直接写出的字符串,对于程序中读取出来的无效

5:变量:变量可以看做是专门放数据的容器,变量在定义的时候不可以重名,以保证数据的安全性和准确性。

(不表示不能重名eg:{int a =5;}int a =5;定义的变量只要所属方法或类不同就可以同样正常运行)。

命名规则:第一个字母必须是字母或者是下划线,其后的字符可以是任意的数字,字母或者是下划线。不能让变量名全部使用c#的关键字做变量名。

eg:int int1=5; //这样写是正确的

//c#关键字判定方式:VS中用蓝色显示的字符就都是c#关键字;变量的命名规则和函数,类是一样的

//c#中可以用中文做变量名|函数名|类名

6:变量类型:int,char,string,bool,double(了解),byte(了解),decimal(了解),long(了解),float(了解,在数据库中一般工资的数据类型要用到这个)。

7:'a'是char类型;''a''是string类型。字符串可以看作是多个字符组成的。

8:类型转换convert:Convert.ToString(),Convert.ToInt32(),ToString().

9:运算符表达式:

●+,-,*,/(除),%(求余)

●+可以用作字符串连接,其他不可以

●++自增;--自减

●运算符优先级:i1+i2*i3与(i1+i2)*i3;不要变态,括号是王道

●变量可以和字面量混合运算:eg:i1=i2+20

10.赋值运算:i+=2; //i=i+2

(*) += , -= , *= , /= ;

11.int x,y=10,0;

x+y=80; //这样写是错误的,因为左边的必须是变量!!不能是常量也不能是表达式

Console.Write(y);

12.Console.Write("{0}",i=1); //c#中赋值表达式也有值,他的值表示赋值后变量的值

Console.Write("{0}",i=1); 与Console.Write("{0}",i==1);的区别。

13.if语句:

int age=20

if(age>20)

{ Console.Write("成年人") }

else if(age>12)

{ Console.Write("儿童") }

else

{ Console.Write("婴幼儿") } //if,else关键字后面只有一行代码时候可以把{}省略掉。但关键字后的第二行代码不和关键字有任何关系

//顾if语句只有一行代码最好也加上大括号

2011.2.19 下午

14.if语句及语句的嵌套:

eg1:提示用户输入年龄,如果大于等于18,则告知用户可以查看,如果小于10岁,则告知不允许查看,如果大于等于10岁,则提示用户是否继续查看(yes,no)如果输入的是yes则提示用户可以查看,否则提示不可以查看。(测试边界条件,-1,8888888888888888888888888.微软如狼似虎的Tester)。代码如下:

namespace test

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("请输入您的年纪:");

string strage = Console.ReadLine();

int age = Convert.ToInt32(strage);

if (age> 18)

{

Console.WriteLine("您可以继续查看!");

}

else if (age< 10)

{

Console.WriteLine("很抱歉,您不能继续查看!");

}

else

{

Console.WriteLine("您的年纪未满18岁,回复yes则继续查看,回复no则退出!");

if (Console.ReadLine() == "yes")

{

Console.WriteLine("您可以继续查看!");

}

else if (Console.ReadLine() == "no")

{

Console.WriteLine("乖!");

}

else

{

Console.WriteLine("您所输入的错误!");

}

}

Console.ReadKey();

}

}

}

eg2:依次提示用户输入两个整数(假设i1,i2)。如果i1,i2都是正数,则将i1的值递增一个数,然后打印i1+i2的值;如果i1,i2都是负数,则将i1的值递减10个数,然后打印i1*i2的值;如果i1,i2中任一个为0,则提示数据有错误,否则计算i1*i2的绝对值。代码如下:

namespace test

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("请输入一个整数:");

string stri1 = Console.ReadLine();

int i1 = Convert.ToInt32(stri1);

Console.WriteLine("请再次输入一个整数:");

string stri2 = Console.ReadLine();

int i2 = Convert.ToInt32(stri2);

if (i1 > 0 && i2 > 0)

{

i1 = i1+1;

Console.WriteLine("{0}+{1}={2}",i1,i2,i1+i2);

}

else if (i1 < 0 && i2 < 0)

{

i1 = i1 - 10;

Console.WriteLine("{0}*{1}={2}",i1,i2,i1*i2);

}

else if (i1 == 0 || i2 == 0)

{

Console.WriteLine("数据有误,请从新输入:");

}

else

{

int i3=i1*i2;

if (i3 < 0)

{

i3 = -i3;

}

Console.WriteLine(i3);

}

Console.ReadKey();

}

}

}

15.switch case 语句:被判定的值进入满足条件的分支执行;case中的值必须是常量,不能是变量,表达式。

●类似于if...else...elseif...else,但是是离散值的判断。

●switch一般都可以用if重写,但是if不一定能用switch重写。

●不要忘了BREAK,c#中的break不写是不行的;除了合并case的情况。

eg:代码如下:(PS:杨老师举的这个例子很幽默啊,这种精神也是我佩服的地方,寓教于乐!)

int i = 2; //修改i的值以达到测试switch...case...语句功能特点的效果

switch (i)

{

case 2: //相当于if(i==2)

Console.WriteLine("你真2!");

Console.WriteLine("你才2!");

break; //c#中必须写break,switch语句的每个分支都要有一个break,在C中虽然可以省略但会造成BUG

case 4:

Console.WriteLine("死去吧!");

break;

case 8:

Console.WriteLine("发发发!");

break;

default: //相当于if语句的else

Console.WriteLine("你输入的{0}没有意义!",i);

break;

}

Console.ReadKey();

●当几个逻辑处理单元处理内容相同的时候可以将逻辑处理单元的内容合并起来。

eg:int i = 2;

switch (i)

{

case 2: //case后面只能跟常量:如“2”,“aaa”;不能跟变量

Console.WriteLine("你真2!");

Console.WriteLine("你才2!");

break;

case 8:

Console.WriteLine("发发发!");

break;

case 10:

case 20: //相当于if(i==10||i==20),这里是唯一一个case后面不用break的情况

Console.WriteLine("你输入的是整钱!");

Console.WriteLine("大爷!你真有钱!");

break;

default:

Console.WriteLine("你输入的{0}没有意义!",i);

break;

}

Console.ReadKey();

16.while循环

● while(i<100)

//打印i

i++; //只要while后小括号中的表达式为true,就不断一遍一遍执行大括号中的代码,就好像是一个死循环

●(*)do //先做。。。如果满足则再来一次,直至while表达式为false.括号中代码至少被执行一次。

{ //很少用的一种语法

//打印i

i++;

}

while(i<100)

eg1: 用while计算1到100之间的整数和;(其实有更好的解法)

eg2:要求用户输入用户名和密码,只要不是admin,888888就一直提示要求重新输入。

eg3:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出。

eg4:不断要求用户输入一个数字,当用户输入end的时候显示刚才输入的数字中的最大值。

未完待续。。。。我将分次把文章写出来

接着下一篇:

http://www.cnblogs.com/CarreyWu/archive/2011/02/20/base_of_Csharp_02.html