———————- <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>
、期待与您交流!
———————-