.Net学习与总结一: C#基础语法知识
作者:MR。迷 | 出处:博客园| 2012/4/22 2:59:33 | 阅读25次
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流!----------------------
以下是本人通学习.net时,对每个知识点总结,由于是总结,知识点都不是很具体说明。
以后有空,希望能把每个知识点拿出来讲解。
写这篇文章是为了总结与巩固自己知识,以后回头可以快速回顾。可能对一些朋友帮助不是很大。
但还请各为兄弟朋友们看后,有漏与错误之处提醒下。在此非常感谢
一、.Net开发前缀
1. .Net发展与方向
2. C#、.Net Framework、CLR、CLI等关系
3. 开发环境
a.开发环境解决方案管理器:解决方案、工程、文件
b.拖动视图、关闭/打开视图、重置窗口布局
c.C#文件
d.错误列表
e.工具,选项,如显示:显示代码行号,字体等
f.设置启动项目
二、C#简单语法
1.第一个控制台程序,Write、WriteLine
2. C#程序的入口是Main函数
3.C#语法,标识符和关键字
4.简单语句、注释方法等
5.执行步骤、运行
三、类型、存储和变量
1.类型与变量的作用(变量看成放数据的容器)
2.基本数据类型
3.声明(变量的命名规则:C#中建议变量的开头用小写,VS中亮蓝色的就是关键字)
4.使用(变量使用之前必须赋值)
4.存储原理:在栈与堆中存储
5.值类型与引用类型
6.枚举(用枚举的好处就是限定了变量的取值范围,程序处理起来更方便。)
7.数组(保存多个值。几乎任意类型都可以声明数组)
个数和声明数必须一致
使用索引器访问指定编号位置的元素
索引从0开始。取到的元素的类型就是数组元素的类型。还可以对数组元素进行赋值
四、C#表达式和运算符
1.数值运算符:
+、-、*(乘)、/(除)、%(求余)
+可以用作字符串连接,其他不可以。
++(自增)、--(自减)
(*)运算符优先级,不知道的优先级别时,加个括号了事
2.赋值运算符
赋值运算符=,让左边变量的值等于右边的计算结果
+=、-=、*=、/= i+=2;相当于:i=i+2;
左边的必须是变量,不然赋值给谁?没人能接收吧?
3.布尔运算
相等判断:==,不要和=混淆
不等判断:!=
大小比较:<、>、<=、>=
取反:!
组合运算:&&(并且)、||(或者)
&& 并且:只有两边都为true的时候,表达式的值才为true,否则是false;
|| 或者:两边只要有一个为true的时候,表达式的值就是true,否则是false;
&&、||是短路运算(左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值。)
五、语句
语句是告诉一种类型或程序去执行某个动作的的指令。
1. 控件流语句
a.if语句
if(){}else{} 、if(){}else if()…具体情况,具体使用
单句的时候大括号可以省略,但是不建议省略,为了程序更好阅读。
b.switch语句
• 类似于if...else...else if...else,但是是离散值的判断。
• switch一般都可以用if重写,但是if不一定能用switch重写
• 要忘了break。C#中的break不写是不行的,除了合并case的情况
• case中的值必须是常量,不能是变量、表达式
c.while循环
• while中的表达式为true,就不断执行大括号中的代码
• do{}while()中,不管while中是否为真,都先执行后判断条件
d.for循环
for(code1;code2;code3)。code1:循环的初始化代码,只在循环开始之前运行一次;code2,bool类型的表达式,每次循环完成前都判断一下是否为true,只有为true才会进行本次循环;code3在每次循环之后执行一次。
for的三段都可以省略,但是不能丢了“;”。
for和while代码之间都可以互相转换
2.循环的中断
break:立即终止整个循环。
continue:立即终止当前循环步骤,进行下一次循环步骤。
return(返回值,直接return;代表为空,有返回后,之后程序不被执行)
一、函数、方法(后面讲)
1. 函数就是将一堆代码进行重用的一种机制。函数就是一段代码,这段代码可能有输入的值(参数),可能会返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。要求的数据就叫参数,返回的执行结果就是返回值。
2. 程序调用到函数的时候是进入函数内部执行的,执行完毕再继续向下执行。
3. 函数如果没有返回值则标记返回值类型为void
4. return语句(导致函数立即返回。在返回值为void的函数中return,在返回值非void的函数中return数值)
5. 函数内部变量、参数和调用者参数、变量的关系
6. 一个函数如果“答应”返回一个非void类型的值,则函数的所有路径都要有返回值。比如将对输入年龄转换为年龄段描述的函数。
7. 函数、方法区别(函数为面向过程说法,方法为面向对象说法,同性质的东西)
8. 函数参数
a. 函数参数有:引用ref参数、输出out参数、可变参数params.
ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而out则是内部为外部赋值,所以不需要初始化,而且外部初始化也没用。
ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所。
可变参数数组必须是最后一个
b.确定函数参数的原则:自己能确定的数据自己内部解决,自己确定不了的数据通过参数传递。
二、字符串
1. 字符串
a.C#中单个字符用单引号包含就是char类型,(‘a’),单引号中放且只能放一个字符。ASCII码
b.单个字符也可以表示为字符串,还可以有长度为0的字符串。null和""的区别,String.IsNullOrEmpty
使用s.Length属性来获得字符串中的字符个数
c.string可以看做是char的只读数组。char c = s[1];。例子:遍历输出string中的每个元素。
d.C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。
e.如果要对char进行修改,那么就必须创建一个新的字符串,用s. ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new string(char[])这个构造函数(暂时不用细研究)来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。例子:将字符串中的A替换为a。
2.String类常用函数
• ToLower():得到字符串的小写形式。
• 注意字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回。s.ToLower()与s=s.ToLower()
• ToUpper():得到字符串的大写形式; Trim()去掉字符串两端的空白(不会去掉中间的)。
• Equals: s1.Equals(s2, StringComparison.OrdinalIgnoreCase),两个字符串进行不区分大小写的比较。推荐这种用法。
• Join: string s1 =string.Join("|", values);//第一个参数是string类型分隔符
3.字符串的分割
• string[] Split(params char[] separator):将字符串按照指定的分割符分割为字符串数组;
• string[] Split(char[] separator, StringSplitOptions options)将字符串按照指定的char分割符分割为字符串数组( options 取RemoveEmptyEntries的时候移除结果中的空白字符串);
• string[] Split(string[] separator, StringSplitOptionsoptions)将字符串按照指定的string分割符分割为字符串数组。
----其它------------
• 字符串替换:string Replace(string oldValue, stringnewValue)将字符串中的出现oldValue的地方替换为newValue。例子:名字替换。
• 取子字符串:string Substring(int startIndex),取从位置startIndex开始一直到最后的子字符串;
• string Substring(int startIndex, int length),取从位置startIndex开始长度为length的子字符串,如果子字符串的长度不足length则报错。案例:截取字符串前5个,string s2 = s1.Substring(0,Math.Min(s1.Length, 5));//取字符串的长度和5中的最小值来截取。谁小娶谁。
• bool Contains(string value)判断字符串中是否含有子串value
• bool StartsWith(string value)判断字符串是否以子串value开始;
• bool EndsWith (string value)判断字符串是否以子串value结束;
• int IndexOf(string value):取子串value第一次出现的位置。