常用基本数据类型:
1.转义符“\”只针对在代码中直接写出的字符串,对于程序中读取出来的没有这个问题。

2.@表示字符串中的转义符“\"为普通字符,但是如果有双引号还是要使用转义符。如:@"c:\a.txt"(推荐)。

3.bool类型的变量取值:true、false。

4.因为编译器默认遇到"开始字符串,再遇到"是结束字符串,所以对于像"这样的字符要使用转义符"\"。

5.简单的类型转换:Convert.ToString()、ToString()、Convert.ToInt32()。


变量命名:
1.命名规则:第一个字符必须是字母或下划线(_),其后的字符可以是任意个数字、字母、下划线。不能全部使用C#的关键字,如class、namespace、new 、void等。VS中亮蓝色的是关键字。

2.这也是类、函数等的命名规则。

3.C#中建议变量名开头用小写。

4.中文变量名(类名、函数名)。

5.局部变量使用前必须赋值。


运算符、表达式
1.+、-、*、/、%(求余)

2.运算符优先级

3.+可以用作字符串连接。

4.++(自增)、--(自减)


赋值
赋值运算符=,让左边变量的值等于右边的运算结果

布尔运算
1.==(相等)、!=(不等)、!(取反)。
2.&&(与、并且)、||(或、或者)
&&:两边都为true,表达式值才为true,否则是false;
||:两边有一个为true,表达式值就为true,否则是false。
3.赋值表达式的值为赋值后变量的值。

switch case
1.类似于if...else...else if...else,但是是离散值的判断。
2.switch一般都可以用if重写,但if不一定能用switch重写
3.C#中的break是必须写的,除了合并 case的情况。

循环的中断
1.break:立即终止整个循环。
2.continue:立即终止当前循环步骤,进行下一次循环步骤。

for循环
1.for(code1;code2;code3)。code1:循环的初始化代码,只在循环开始之前运行一次;code2:bool类型的表达式,每次循环完成后都判断一下是否为true,只有为true才进行下一次循环;code3在每次环一次之后执行一次。
2.for的三段代码都可以省略,但是不能丢了“;”。
3.break、continue同样可以应用于for。
4.for和while代码之间可以相互转换,使用哪种方式取决于一些惯用用法和个人习惯。

类型转换Cast(*)
1.把源类型赋值给目标类型,两个类型不一致的时候会发生类型转换。a=b(b是源,a是目标)
2.隐式转换、显式转换。当目标类型一定能满足源类型转换过去后的要求的话就是隐式转换;如果目标类型不一定能满足源类型转换过去后的要求的话就需要显式转换(自己负责)。
3.把中国人转换为人是隐式转换,把人转换为中国人则是显式转换。
4.内存中的数据没有变化,只是不同的视角而已。
5.byte b=1;int i=1;i=b;b=(byte)i;
6.为什么要进行显式转换?编译器不能保证一定正确,转换结果自己负责,编译器不承担这个责任,由开发人员来保证。
7.只有在内存存储上存在交集的类型之间才能进行Cast,否则则不可以,比如:int i;string s=(string)i; 反之也不可以。这种情况必须由Convert类提供的方法。

类型转换Convert
1.Convert不再是内存级别的转换,而是考虑数据意义的转换。(如:可以将姓名转换成人)Convert是一个加工、改造的过程。
2.Convert.ToInt32、Convert.ToString、每种类型都有ToString方法(类型的ToString和Convert.ToString略微的差别暂不用关心)。

枚举
1.确定数量、确定值的几个取值,如:东南西北、男女、上中下
enum Gender{male,female}
enum QQStatus{online,offline,hiden}
2.枚举的用法,QQStatus status=QQstatus.online;
3.和用字符串比,用枚举限定了变量的取值范围,程序处理起来方便。

数组
1.保存多个值,几乎任何类型都可以声明
int[] inums={1,2,3};      int[] inums=new int[3];
int[] inews=new int[3]{1,2,3};//个数和声明必须一致
int[] inews=new int[5]{1,2,3};//错误
2.从索引器访问指定编号位置的元素,如:inums[0]、inums[1]。索引从0开始,元素的类型就是数组元素的类型,可对数组元素进行赋值。

3.foreach循环
string[] strnames={"Tom","Jerry","Lily"};
foreach(string strname in strnames)
{
  Console.WriteLine("您的名字{0}",strname);
}

和for的区别,for可以不逐个遍历。如:每隔一个遍历一个,或者可以从后向前遍历。

函数
1.函数就是将一堆代码重用的一种机制,函数就是一段代码,这段代码可以有输入值、返回值,要求的数据叫参数,返回的执行结果叫返回值。
Console.ReadLine()是一个有返回结果的函数;
Console.WriteLine("hello")是一个有执行参数的函数;
int i=Convert.ToInt32("22")是一个即有参数又有返回值的函数。
2.有了函数写代码就像拼积木,C#中各种各样的技术其实就是通过for、if等这些基础语法将不同的函数按照一定的逻辑组织起来。
3.自定义函数
如:读取输入的整数(定义成函数)
static int ReadInt()
{
  String strint=Console.ReadLine();
  Return Convert.ToInt32(strint);
}
程序调用函数是进入到函数内部执行,执行完后返回继续向下执行。
4.函数如果没有返回值则标记为void类型。
5.Return语句,导致函数立即返回,在返回值为void的函数中(return;);在返回值回值为非void的函数中(return 表达式;)。
6.确定函数参数的原则:自己能确定的数据自己内部解决,自己确定不了的数据通过参数解决。
7.可变参数
参数数组:int sum(params int[] values)、int sum(string name,params int[] values)
可变参数数组必须是最后一个;参数默认值(.Net4.0):void。如:SayHello(string name,int age=20)

函数的重载(函数重名)
构成重载的条件:参数类型不同或参数个数不同(不严谨),与返回值无关。

字符串的处理
C#中单个字符用单引号包含就是char类型,如:'a',单引号中只能放一个字符;
单个字符也可以表示为字符串,可以有长度为零的字符串;
使用s.Length属性来获得字符串中的字符个数;
string可以看作是char的只读数组;char c=s[1];。例:遍历输出字符串中的每个元素。
C#中字符串有一个重要特性:不可变性,字符串一旦声明就不再可以改变。只能能过索引读取指定位置的char,不能对指定位置的char进行修改;
如果要对char进行修改,就必须创建一个新的字符串,用s.ToCharArray()得到字符串char数组,对数组进行修改后,调用new string(char[])这个构造函数来创建char数组的字符串。一旦字符串被创建,那么char数组的修改不会造成字符串的变化。例:将字符中的A替换为a。

posted on 2012-05-31 11:57  拂云漂海龙  阅读(383)  评论(0编辑  收藏  举报