您的位置:首页 > 编程语言 > ASP

ASP.NET Web 应用开发实战快速上手系列 2——C#基础

2010-09-28 23:47 976 查看
这里介绍C#,最高到3.0这个版本,不涉及4.0的内容,C#4.0的新特性可以参阅:.NET Framework 4 中的新 C# 功能。有C#基础者本文没必要看了。

所有的C#代码都存储在扩展名为.cs的文件中,一般情况下,一个cs文件保存的就是一个C#类(class)或接口(interface)或结构(struct),这三个是什么,可以先不理会。

一、用Visual Studio创建项目

我们创建一个控制台应用程序(Console Application),控制台应用程序一般用于学习C#语言 ,具体步骤(中英文对照):【运行Visual Studio】——点击菜单栏的【文件】(File)-——【新建】(New)——【项目】(Project),出现下图界面:



按上图选择开发语言(C#)下的模板类型Windows中的Console Application。

1——项目名称

2——存储目录,可点击输入框后面的【浏览】(Browse)选择

3——解决方案名称

4——创建解决方案目录

5——添加到源代码管理,只有在安装了和VS继承的源代码管理工具后,此项才能选择

点击【确定】 (OK)创建项目:



项目与解决方案的关系:一个解决方案可以包含多个项目,编译解决方案会编译全部项目,要运行解决方案必须设定启动项目(Set as Startup Project,在项目的右键菜单中可以看到),接下来添加第二个项目:

  右击解决方案名称,在右键菜单中选择【添加】(Add) ——【新建项目】(New Project),



在弹出的窗口中的(项目)名称输入框中输入:MySecondApp,点击【确定】创建第二个项目,解决方案资源管理器(Solution Explorer) 中将出现刚添加的这个项目:



二、C#文件结构

Program.cs就是一个C#类文件,如果你使用的是VB,扩展名将会是.vb。



第一部分:添加对命名空间的引用,当创建文件时,开发环境会默认(可以修改)添加一些

第二部分:当前类所在的命名空间,如果在命名空间外访问此类,则必须添加对命名空间MyFirstApp的引用(参考第一部分)或者用完整的访问方式MyFirstApp.Program。

第三部分:类(先不要管什么是类)

  三、C#语言规范

初学者写代码的时候要注意,当不考虑嵌套类型时,所有代码,除了以下代码(命名空间引用、指定命名空间、定义类、定义接口、定义结构、定义枚举、定义委托),都应该写在类、结构、接口、枚举的内部,内部代码也有讲究,后面再说。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace MyFirstApp

{

//创建名为Animal的类

class Animal

{

//代码写在这里

}

//创建名为IActivity的接口

interface IActivity

{

//代码写在这里

}

//创建名为CurrentPosition的结构

struct CurrentPosition

{

//代码写在这里

}

//创建名为WeekDay的枚举

enum WeekDay

{

//代码写在这里

}

///创建名为Del的委托

delegate void MyEventHandler();

}

C#中的一个语句:从行的第一个单词(或上一个分号结束位置)开始直到遇到分号(“;”,英文半角),如

int daysOfWeek = 7;

也就是说C#是分号断句,下面的代码虽然在一行上,但表示两个语句,这种写法要尽量避免:

int daysOfWeek = 7;int weekend = 2;

C#中的注释

using System;

namespace MyFirstApp

{

/// <summary>

/// 类Program

/// 包含应用程序的主入口函数Main

/// 用于类、结构、接口、枚举、方法

/// </summary>

class Program

{

/*

* 多行注释

* 控制台应用程序的主入口函数

* args:string类型的数组

*/

static void Main(string[] args)

{

//单行注释,定义整型变量

int daysOfWeek = 7;

}

/// <summary>

/// 方法说明

/// </summary>

/// <param name="s">参数说明</param>

static void WriteLineString(string s)

{

/*

多行注释

Console.WriteLine(s);

Console.ReadLine();

*/

}

}

}

C#种对象命名规范:

1)不能使用关键字(IDE中默认为蓝色);

2)可以用字母、数字、下划线组合,但只能以字母或下划线开始 ;名称可以由多个单词或单词的缩写组合;可以定义纯中文对象名,但不提倡;

3)除变量、常量外,其它命名名称的每个单词的第一个字母应该大写;变量则从第二个单词开始第一个字母大写,常量则全部大写;

可以参照一些类库中对象的元数据(metadata),如下图,双击类名File,在右键菜单中选择【转到定义】(Go To Definition):



四、C#数据类型

C#数据类型 分为:值类型和引用类型;也可以分为内置数据类型和用户定义数据类型。

C#类型

.NET Framework

类型

范围

说明

默认值

bool

System.Boolean

布尔值,true或false

false

byte

System.Byte

0 到 255

8 位的无符号整数

0

sbyte

System.SByte

-128 到 127

8 位的有符号整数

0

char

System.Char

U+0000 到 U+ffff

16 位 Unicode 字符

‘\0’

decimal

System.Decimal

±1.0 × 10-28 到 ±7.9 × 1028

28 到 29 位有效位

0.0M

double

System.Double

±5.0 × 10-324 到 ±1.7 × 10308

15 到 16 位精度

0.0D

float

System.Single

±1.5 × 10-45 到 ±3.4 × 1038

7 位

0.0F

int

System.Int32

-2,147,483,648 到 2,147,483,647

有符号 32 位整数

0

uint

System.UInt32

0 到 4,294,967,295

无符号 32 位整数

0

long

System.Int64

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

有符号 64 位整数

0L

ulong

System.UInt64

0 到 18,446,744,073,709,551,615

无符号 64 位整数

0

object

System.Object

对象层次结构的根

-

short

System.Int16

-32,768 到 32,767

有符号 16 位整数

0

ushort

System.UInt16

0 到 65,535

无符号 16 位整数

0

string

System.String

Unicode 字符的不变的定长串

-

可空类型

特定类型值范围+null值

可空类型是 System.Nullable 结构的实例

关注一下:可空类型和隐式类型局部变量。

五、C#运算符

算术运算符
运算符

说明

表达式

+

执行加法运算(如果两个操作数是字符串,则该运算符用作字符串连接运算符,将一个字符串添加到另一个字符串的末尾)

操作数1 + 操作数2

-

执行减法运算

操作数1 - 操作数2

*

执行乘法运算

操作数1 * 操作数2

/

执行除法运算

操作数1 / 操作数2

%

获得进行除法运算后的余数

操作数1 % 操作数2

++

将操作数加 1

操作数++ 或++操作数

--

将操作数减 1

操作数-- 或--操作数

~

将一个数按位取反

~操作数

赋值运算符
运算符

计算方法

表达式

求值

结果(X = 10

=

给变量赋值

变量=值

常量=值

+=

运算结果 = 操作数1 + 操作数2

X += 5

X = X + 5

15

-=

运算结果 = 操作数1 - 操作数2

X -= 5

X = X - 5

5

*=

运算结果 = 操作数1 * 操作数2

X *= 5

X = X * 5

50

/=

运算结果 = 操作数1 / 操作数2

X /= 5

X = X / 5

2

%=

运算结果 = 操作数1 % 操作数2

X %= 5

X = X % 5

0

比较运算符

运算符

说明

表达式

>

检查一个数是否大于另一个数

操作数1 > 操作数2

<

检查一个数是否小于另一个数

操作数1 < 操作数2

>=

检查一个数是否大于或等于另一个数

操作数1 >= 操作数2

<=

检查一个数是否小于或等于另一个数

操作数1 <= 操作数2

==

检查两个值是否相等

操作数1 == 操作数2

!=

检查两个值是否不相等

操作数1 != 操作数2

类别

运算符

说明

表达式

三元运算符

? :

检查给出的第一个表达式 expression 是否为真。如果为真,则计算 operand1,否则计算 operand2。这是唯一带有三个操作数的运算符

表达式?

操作数1:

操作数2

类别

运算符

说明

表达式

成员访问运算符

.

用于访问数据结构的成员

数据结构.成员

赋值运算符

=

给变量赋值

操作数1 = 操作数2

逻辑运算符

&&

对两个表达式执行逻辑“与”运算

操作数1 && 操作数2

||

对两个表达式执行逻辑“或”运算

操作数1 || 操作数2

!

对两个表达式执行逻辑“非”运算

! 操作数

( )

将操作数强制转换为给定的数据类型

(数据类型) 操作数

六、变量

变量用于存储特定类型的值,关于数据类型,参阅上面第四部分,如:

//字符串变量

string userName;

//时间和日期变量

DateTime birth;

//整型变量

int age;

//布尔型变量

bool isChinese;

//单精度浮点型变量

float salary;

//others

了解一下隐式类型局部变量

七、常量

建议常量名全部大写。常量一旦赋值后,其值不能被改变。

const float PI = 3.14f;

八、选择结构和循环结构

1)选择结构

if (<条件>)
{
<语句块>
}
else
{
<语句块>
}
还可以有else if(条件){}一个或多个。

switch (选择变量)
{
case 值1:

break;

case 值2:

break;
...
...
default :

} 各个 case 标签不必连续,也不必按特定顺序排列
default 标签可位于 switch…case 结构中的任意位置
default 标签不是必选的,但使用 default 标签是一个良好的编程习惯
每两个 case 标签之间的语句数不限

2)循环结构

while(条件)
{
//循环内语句
}

do
{
//循环内语句
} while(条件)

for(初始值;条件;增减)
{
//循环内语句
}

foreach (元素 in 集合)
{
//语句
} break 语句可用于退出循环
continue 语句可用于跳过当前循环并开始下一循环

九、数组

参阅MSDN:数组。 了解交错数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐