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#运算符
算术运算符
赋值运算符
比较运算符
六、变量
变量用于存储特定类型的值,关于数据类型,参阅上面第四部分,如:
//字符串变量
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:数组。 了解交错数组。
所有的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:数组。 了解交错数组。
相关文章推荐
- 【原创】ASP.NET Web 应用开发实战快速上手系列 1——配置环境及预备知识(框架、VS、C#)
- ASP.NET Web 应用开发实战快速上手系列 3—C#面向对象编程纲要-类
- ASP.NET开发实践系列课程之Web应用的安全攻防之网页木马
- ASP.NET开发实践系列课程之Web应用的安全攻防之垃圾信息群发(SPAM)
- 9月黄金推荐:IT零基础系列套餐(J2EE、ASP.NET、android、hadoop、数据库、游戏开发、web前端开发)
- 基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速Web开发框架设计
- Web开发基础务实之《ASP.NET战役完胜表彰晚会(一)》
- 转载:asp.net控件开发基础系列
- 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥
- C#.NET 大型企业信息化系统集成快速开发平台 4.1 版本 - 面向数据库SQL语句的应用开发二
- ABP(现代ASP.NET样板开发框架)系列之16、ABP应用层——数据传输对象(DTOs)
- ABP(现代ASP.NET样板开发框架)系列之17、ABP应用层——参数有效性验证
- MongoDB实战开发 【零基础学习,附完整Asp.net示例】
- Java WEB开发实战 之 第二部分:Web应用基础知识【私塾在线原创】
- ASP.NET AJAX 在Web开发中的应用
- asp.net控件开发基础系列
- ASP.NET 控件开发系列之图片切换web控件
- MongoDB实战开发 【零基础学习,附完整Asp.net示例】
- C# asp.net 4.6 For webForm使用FullCalendar3.8基础篇
- 在Web应用程序开发过程中利用ASP.NET MVC框架的实战技巧