---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、
<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
一、Dot net开发工具:Visual Studio
二、Dot net 平台特征:跨语言(C#、VB.Net、F#、IronPython)
三、.NET Framework框架:为不同的基于.NET的语言提供相同的类库、函数库。
四、.NET Frameword框架优点:跨语言、跨平台、使用安全。
五、.Net版本:visual studio 2003(.Net1.1)、visual studio 2005(.Net2.0)、visual studio 2008(.Net3.X)、visual studio 2010(.Net4.X)
分为:Express(免费版)、Standard(标准版)、Professional(专业版)、Team Suite(团队版)
六、C#语言与.Net Framework
.Net Frameword 是一个框架,基本上包括CLR(common lauguage runtime)公共语言运行时,BCL(basic class library)基本类库。而C#是运行在.Net Frameword上的一种基本语言。
七、C#语法特点:
(1)从上到下一条条语句的一次执行。
(2)大小写敏感(区分大小写)。
(3)每写完一条语句用“;”与下一个语句隔开。
(4)C#语言用到的一些符号像引号” ”,逗号, 分号; 等等都要是英文半角状态下的。
八、C#语言基本结构:C#文件是.cs结尾的文件。
using System; //引用命名空间
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1 //本程序所在的命名空间
{
class Program //类
{ //不管是Windows程序
static void Main(string[] args) //还是Web应用程序
{ //还是控制台程序等等
Console.WriteLine("HELLO WORLD!!"); //都要有一个Main()函数
Console.ReadKey(); //且只能有一个,它是程序的入口点
}
}
}
一开始学习C#语言是从控制台程序开始的,最先接触的是三句话:
1、Console.WriteLine(“要输出的内容”);
2、String s =Console.ReadKey();将控制权交给用户,通常定义一个String(字符串类型)变量来接收它的值
3、Console.ReadKey();让程序停下来,可以看到执行结果。
九、C#语言基本语法:
(1)注释:
1)单行注释: //要注释的内容
2)多行注释: /*多行注释
的内容*/
(2)占位符的使用:占位符从零开始,是第二个参数开始的顺序,注意定义几个{},后面就要有相对应参数的个数。
例如:Console.WriteLine(“{0}+{1}={2}”,第一个参数(填补{0}),第二个参数(填补{1},第三个参数(填补{2})));
示例:Console.WriteLine("{0}+{1}={2}",10,20,30); //10、20、30也可以是任意类型的变量。
(3)变量
变量的概念:变量就是盛放数据的容器。
变量的声明:变量类型 变量名
变量声明示例:int num=10; //定义了一个int类型的变量,名字是num ,用=号赋值为10
变量的定义规则:在程序中不能出现重复定义string s=””,string s=””;也就是一个变量名不能重复定义,也不能两种类型同用一种名称,例如:string s=””,int s=10 ,这也是错误的。
变量的使用规则:先定义,再赋值,后使用
变量名与字符串的值得混淆:
Int i=10;
Console.WriteLine(i); //结果是10,因为int 类型的变量i指向的是10。
Console.WriteLine(“i”);//结果是i,因为这是一个字符串。
变量的命名规则:第一个字符是字符或者下划线,后可以是任意字母,数字,下划线,不要使用C#中的关键字。(可以使用中文,但是很少用中文)
变量的作用域:在{内定义的变量,只能在}之内可以使用。
(4)基本的数据类型:
1)String字符串类型,它的值要放在双引号中(可以看做多个单个字符组成)。
2)Int 数字类型,不用引号。
3)Char 单个字符,用单引号
4)Bool只有true 和false
5)Decimal:货币
6)Byte;字节
7)Double :双精度
8)Long;长整型
9)Float:单精度
(5)转义符
“abc” 这是一个字符串,如果要让控制台输出引号,二不当做字符串来处理这时要用到的就是转义符
用法是:\要转义的字符
例如:\” 代表这是一个引号
其他转移字符:
\’ 单引号 ; \””双引号 ;\\斜线 ;\b退格 ;\n换行 ;\r回车 ;\t制表符
不转义:在字符串前加@
(6)数据类型的转换
显示转换:源类型可以转为目标类型的转换,但有可能出错的转换,需要程序员进行强制转换。
例如:
int i=10;
double d=20;
int c=i+(int) d //需要显示把double d转换成(int)
Console.WriteLine(c);
隐式转换:源类型一定可以转为目标类型的转换,系统可以自动转换
例如:
int i =10 ;
double d=20;
double c =i+d; //系统自动将i的int类型转成了double
Console.WriteLine(c);
但是上面的两个例子值适合在数字类型之间转换,如果想要在字符串,数字,字符之间转换,
则可以调用Convert.ToInt32(); //转换成为数字类型
转换失败不会报错返回bool值 Int.TryParse(); 还有double.TryParse() , char.TryParse()等等
转换失败就会报错返回转换后Int值 Int.Parse();还有double.Parse(),char.Parse()等等
一般数据类型都可以转换为字符串类型
(7)运算符
+:如果是数字类型则执行数字的值相加操作,如果是两个字符串则是连接两个字符串。
-:两个数字类型的值相减
*:两个数字的值相乘
/:连个数字的值相除
%:两个数字相除后取余数(取模)
=:赋值运算符 把“=”右边的值或者表达式的值赋给左边的变量
+=:例如:i +=3; 等价于i=i+3;
-=:i-=3等价于i=i-3;
*=:i*=3等价于i=i*3;
/=:i/=3等价于i=i/3;
++:自增运算,每次自动增1,例如i=1;i++; i的值为2;
--:自减运算,每次自动减1,例如i=2;i--; i的值为1;
==:bool类型的运算,有两种结果true 和 false 判断左侧表达式的值是否等于右边
!=:判断左侧表达式的值是否不等于右边 (!是取反)
<:小于号 判断左侧值是否小于右侧值
>:大于号 判断左侧值是否大于右侧值
<=:小于等于 判断左侧值是否小于等于右侧值
>=:大于等于 判断左侧值是否大于等于右侧值
&&:并且运算 表达式1 && 表达式2 结果是bool类型,只有两边表达式都为true,结果才是true,有一个为false,结果就是false.
||:或者运算 表达式1||表达式2 ,结果是bool 类型,有一个为true,结果就为true ,
两边表达式都为false是,结果才是false.
(8)结构控制语句
选择控制语句
容易出现的错误:
1、if(表达式);{语句块} //()后不能加“;”,否则,它将代表if结束,不执行{}中的语句。
2、如果{}内只有一条语句,可以省略{},但有多条语句不能省略,否则,值执行一条语句。
1)if ...else ...
If(表达式) {语句块 1 } 如果if 表达式的值为true 就执行语句块1
Else {语句块 2} 如果if 表达式的值为false就执行语句块2
2)if ... Else if ... Else if ... Else ...
If (表达式) {语句块} 依次执行if ,else if 内的表达式,一旦有满足的条件
Else if (表达式) {语句块} 就执行{}内的语句,执行后立刻跳出不在往下做
Else if (表达式) {语句块} 判断。如果都不满足,有else则执行else 内语句
..... 没有else 就退出不执行了
Else {语句块}
3)If (表达式){语句块} 可以单独使用if 如果表达式满足条件则执行,否则不执行
4)If ....或者if ... Else ... 可以嵌套使用if 或者else
例如:if (表达式)
{
...................
If (表达式)
{
...................
}
Else
{
If (......)
{
}
}
}
5)Switch (匹配值) {case 值: 语句 ;break;.......}
Switch 语句也是选择匹配的项来执行,只是,匹配的是单个确定的值,不是变量或者表达式。
示例:
Int i =10;
Switch (i)
{
Case 10:Console.WriteLine(“您输入了10”);break;
Case 20:Console.WriteLine(“您输入了20”);break;
Default :Console.WriteLine(“都不是”);break;
}
注意:如果上面的例子case写成:
Case 10:
Case 20:
Case 30:Console.WriteLine(“你输入了10、20或者30”);
则是不管匹配的是10、20还是30都执行Case 30:后面的语句。
循环语句
1)While (条件) {要循环执行的语句}//先判断条件,只要while后括号内的表达式为true 就循环执行{}内的语句
2)Do {语句} while (条件)//先执行{}内语句,在判断while()括号内的条件,不管条件满不满足都执行一次{}内语句。
3)For (变量初始值;判断条件;执行后条件) //判断条件是bool 类型的值
示例:for (int i=0;i<100;i++)
{
循环语句;...........
}
4)foreach (变量类型 临时变量 in 数组名称)
{
...............
}
比较以上三种循环控制结构:
(1)do {} while()先执行一次,在判断是否满足条件继续执行(至少执行一次{}内语句)
(2)While(){} 先判断条件是否满足,如果不满足条件,则不执行
(3)For 一般在知道循环次数的条件下使用,并且可以有选择的执行数组元素。
(4)Foreach 一般用于遍历数组的每一个元素,是只读的。
5)循环中断
关键字: return continue break;
Break; 立即中止循环,并且跳出整个循环,继续往下执行。
Continue:立即中止本次循环,并且执行下一次的循环
Return:(在控制台程序中)立即退出整个Main()函数。
顺序结构:
一般在没有选择控制语句,与循环语句的情况下,程序是从上到下依次执行的
(9)枚举类型
为了限定变量的取值范围,保证数据的有效性,而定义的枚举类型。
其特点是其值是确定的几个取值范围。例如性别,男或女
枚举是一个类型,和类类型一样,定义在命名空间内。
声明枚举语法:
Enum 枚举名
{
值1,
值2,
....................
}
其中,它的每个值都是有int类型的,默认是从0开始,也可以给它赋值:
例如:
Enum fruit
{
Apple =1, //这样就从1开始
Orange=2,
Strawberry=3,
.............
}
(10)函数
函数:实现代码复用,有时,在程序中,需要反复用到一段代码,因此,可以写成一个函数。
函数可以理解成完成特定功能的代码段,需要反复执行这段代码而写成的一个函数。
语法 [访问修饰符] [static] 返回值类型 方法名 ([参数列表])
{
代码段
}
例如:
public static void Method(string name,int age) //连个参数,无返回值
{
Console.WriteLine("大家好,我叫{0},今年{1}岁了",name,age);
}
函数可以构成重载:
重载就是函数的重名,当调用这个函数时,系统会根据参数类型和个数来自动调用匹配的函数。
构成函数重载的条件:
函数名称相同
函数的签名必须不同(函数签名就是函数的参数列表,参数类型不相同,或者个数不相同)
返回值类型可以不相同
例如:下面的两个函数就构成了重载,因为他们的参数类型不相同。
Public static int Add(int a,int b) //两个int类型的参数,返回值是int类型
{
Return a+b;
}
Public static double Add(double a,double b) //两个double 类型的参数,返回值是double 类型
{
Return a+b;
}
十、字符串的常用函数
(1)字符串的特性:
字符串是不可改变的,一个字符串就是一个字符数组,它可以利用索引来访问每一个指定的字符,但是不能改变它。
如果想要改变某个字符,就要通过调用ToCharArray()方法,转换成char 类型的数组,然后再修改某个字符。
例如:
String s=”world”;
S[3]=’a’; //这个是错误的,因为字符串的每个字符是只读的,只能访问,不能修改,字符串一旦声明就不能够改变了。
String s=”world”;
Char [] s2=s.ToCharArray(); //这样就可以修改了,转成char类型的数组后,在对数
S2[3]=’a’; //组进行某个元素的更改。然后在转换成新的字符串。
String s2=new string(s2); //这个新的字符串就是修改了某个元素之后的值。
下面的字符串:
String s1=”me”; //字符串s1的值是 “me”
S1=”you”; //这时s1的值是”you”,但是字符串并没有改变,”me”这个字符串还是在内存
//中,只是,s1指向了另一个字符串。
String s1=”sa”; //执行这句话的时候,系统在线程栈中声明了s1,并且在堆中给”sa”这个字符串分配了内存空间,把指向”sa”的地址复制了一份给了s1,这是,s1便指向了这一地址指向的值”sa”.
String s1;
S1=”sa”; //执行了这句话后.....
S1=”you”; //执行了这句话之后,又改变了.......
(2)转换大小写
ToLower() //把字符转换为小写。
ToUpper() //把字符转换为大写。
注意:
String s =”flower”;
s.ToUpper() //错误,字符串是不可改变的,并没有转换为大写。
String s1=s.ToUpper() //这样把转换为大写之后的字符串的地址复制给s1,而s1指向这个新的字符串。
(3)去掉字符串空格
Trim(); //去掉字符串两边的空格
TrimStart() //去掉字符串左侧空格
TrimEnd() //去掉字符串右侧空格
(4)字符串的相等比较:
Equals()
例如:
string s1 = "aa";
bool b = s1.Equals(" AA");
Console.WriteLine(b); //执行结果为false,因为括号内字符串是大写,不过Equels()方法有重载,可以利用枚举,选择不区分大小写。
bool b = s1.Equals("AA",StringComparison.OrdinalIgnoreCase);
(5)字符串的大小比较:
CompareTo();
例如:
string s1 = "11"; //如果调用者比括号内大,则返回1,否则返回-1;
string s2 = "21";
int i=s1.CompareTo(s2); //执行结果-1
(6)字符串的分割
Spilt(); //可以将某个字符串按照某个字符,分割成一个数组
string s1 = "aa,bb,cc,dd|ff|ee";
string[] s = s1.Split(',','|');// 将字符串s1,以”,”与”|”进行分割
结果是 aa bb cc dd ff ee 等组成的字符串数组。
Spilt()方法有一种重载:
string[] s = s1.Split(c,StringSplitOptions.RemoveEmptyEntries); //后面是一个枚举类型的,作用是可以移除一些空项。
(7)字符串的替换
Replace()函数
使用方法:
string s = "I like books,I enjoy eating books"; //声明一个字符串s
string s1=s.Replace("books", "apples"); //把字符串中的所有”books”改成”apples”
Console.WriteLine(s1); //结果是I like apples,I enjoy eating apples
(8)截取子字符串
SubString (int a) //重载一:从a开始,一直截取到最后
示例:
string s = "I like books,I enjoy eating books";
string s1 = s.Substring(13); //第13个元素是第二个I
Console.WriteLine(s1); //因此结果是I enjoy eating books
SubString(int a,int length)//重载二:从a开始,截取length个元素length是截取的长度。但是如果length参数超过了字符串的长度,就会报错了。
示例:
string s = "I like books,I enjoy eating books";
string s1 = s.Substring(13,7); //从第二个I开始截取,截取7个字符
Console.WriteLine(s1); //结果是I enjoy
(9)判断字符串内是否含有某个字符。
Contains();
string s = "I like books,I enjoy eating books"; //要检测的字符串
bool b = s.Contains("like"); //判断字符串内是否含有”like”这个字符串
Console.WriteLine(b); //执行结果返回bool类型的值true
StartWith() //判断字符串是否以某个字符串开头。
EndWith()//判断字符串是否以某个字符串结尾。
(10)判断某个字符在字符串内第一次出现的位置。
IndexOf();
示例string s = "I like books,I enjoy eating books";
int index=s.IndexOf("k"); //判断字母”k”第一次出现的位置,返回int类型的结果
Console.WriteLine(index);://如果没出现该字符,则返回-1,执行结果是10
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、
<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------