C#基础知识

来源:互联网 发布:js e.preventdefault 编辑:程序博客网 时间:2024/05/29 16:18

.Net学习与总结一: C#基础语法知识

作者:MR。迷 |出处:博客园| 2012/4/22 2:59:33 |阅读25

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流!----------------------

以下是本人通学习.net时,对每个知识点总结,由于是总结,知识点都不是很具体说明。

以后有空,希望能把每个知识点拿出来讲解。

写这篇文章是为了总结与巩固自己知识,以后回头可以快速回顾。可能对一些朋友帮助不是很大。

但还请各为兄弟朋友们看后,有漏与错误之处提醒下。在此非常感谢

 

一、.Net开发前缀

1. .Net发展与方向

2. C#.Net FrameworkCLRCLI等关系

3. 开发环境

a.开发环境解决方案管理器:解决方案、工程、文件

b.拖动视图、关闭/打开视图、重置窗口布局

c.C#文件

d.错误列表

e.工具,选项,如显示:显示代码行号,字体等

f.设置启动项目

二、C#简单语法

1.第一个控制台程序,WriteWriteLine

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第一次出现的位置。

 

原创粉丝点击