net复习.docx
《net复习.docx》由会员分享,可在线阅读,更多相关《net复习.docx(19页珍藏版)》请在冰豆网上搜索。
![net复习.docx](https://file1.bdocx.com/fileroot1/2022-12/11/55109671-19b5-4a1c-b198-1d959096402e/55109671-19b5-4a1c-b198-1d959096402e1.gif)
net复习
第1章.Net技术概述
1.NET代表一个集合,一个环境,一个可以作为平台支持下一代Internet的可编程结构。
2.Net技术分为两个部分:
规范:
公共语言架构(CommonLanguageInfrastructure,CLI)
通用类型系统,公共语言规范,通用中间语言和其它的标准文件和规范。
实现:
.NetFramework
.Net框架是一个用于生成、部署和运行XMLWeb服务及其他应用程序的环境。
它包含三个主要部分:
公共语言运行时(CommonLanguageRuntime,CLR)(就是一个虚拟机,它为各种.Net程序提供了一个高性能的、抽象于底层操作系统和硬件的运行时环境),.NetFramework类库和ASP.NET。
3.Net开发的应用类型
Web程序:
主要是利用ASP.NET技术开发的B/S模式的动态网站,用户可以使用IE浏览器进行访问。
WindowsForm,,移动数字设备程序,XMLWebServices应用程序
4.ASP.Net是.Net框架的一部分,是基于.Net的公共语言运行时CLR的一种编程框架,用于编写在服务器上运行的功能强大的Web应用程序和Web服务。
ASP.Net不是ASP(ActiveServerPage,动态服务器页面)的下一个版本,而且是一种建立在通用语言上的,全新的Web应用程序开发构架。
Asp使用脚本类型语言:
(javascript和vbscript)
A使用编译型语言:
(c#和)
特点:
a.代码编译后执行,效率高;b.脚本和html标记可以分离,利于web程序的表示层、商业逻辑层、数据库访问层的分离,增强了代码的可重用程度;c.程序的版权可以很好的得到控制。
(优势:
代码分离技术,控件驱动,新的数据存取机制ADO.net,数据绑定技术)
5.两种基本开发模型:
C/S模型(Client/Server,客户端/服务器),B/S模型(Browser/Server,浏览器/服务器)
6.静态网页纯HTML语言描述(.html或.htm文件),人工手动维护HTML代码,编程、调试困难交互性差。
动态网页是网页中包含有需要在Web服务器执行的代码(.jsp,.asp,.php及.aspx等)
不论以何种语言编写的动态网页,到达浏览器的时候都是HTML代码
7.IIS(InternetInformationServer微软服务器,使用简单,运行Windows操作系统)和Apache。
而Apache是一个开源软件,有Windows和Linux等系统下版本。
第二章C#程序设计
1.NetFramework命名空间功能:
用于组织.NETFramework提供的几千个类,使用命名空间可以解决类名冲突问题。
利用using语句使用命名空间,如“usingSystem;”表示导入System命名空间。
导入命名空间后,使用其包含的类时可省略命名空间。
System:
提供基本类
System.Configuration:
提供处理配置文件中数据的类
System.Data:
提供对ADO.NET类的访问,
System.Ling:
提供使用LINQ进行查询的类和接口
System.Web:
提供使浏览器与服务器相互通信的类和接口,如用于读取客户端信息的HttpRequest类。
System.Web.Security:
提供在Web服务器实现ASP.NET安全性的类,如用于验证用户凭据的MemberShip类。
2.C#语言的变量、数据类型(程序语言真正的核心——变量)
中级语言时代—里程碑、完全引入变量和变量类型
高级语言时代—变量概念的新发展,结构体(记录)
面向对象时代—面向类、Java、.Net传统变量类型被彻底放弃,所有的变量类型都被理解为类,所有的变量都成为对象
所有其他类型的最终基类:
object
接口类型interfaceI{...}
Unicode字符串string
委托类型delegateTD(...)形式的用户定义的类型
char√16位Unicode字符:
0到65535
short√有符号16位整数:
-32,768到32,767
int√有符号32位整数:
-2,147,483,648到2,147,483,647
long√有符号64位整数:
-9,223,372,036,854,775,808到9,223,372,036,854,775,807
float√单精度32位浮点数(精度7位):
±1.5×10−45到±3.4×10+38
double√双精度64位浮点数(精度15-16位):
±5.0×10−324到±1.7×10308
bool√布尔变量(true或false)
string√表示一个Unicode字符的字符串
C#语言的数据类型(平台无关的方式来定义)——通用类型系统
数据类型,可以有方法
(如floatf=3.14F,floatf=(float)3.14,doublef=3.14)
装箱和拆箱:
在值类型和引用类型间转换boxing//unboxing
intx=0;
if(x){}×
可用if(x!
=0)进行显式比较
或者用转换函数
if(System.Convert.ToBoolean(x)){}//非0为true
charMyChar=65;//×:
integraltypecannotfitinchar
charMyChar=(char)65;//√:
Castfromintegraltype
inta=MyChar;//√:
implicitconversiontoint
charc=(char)Console.Read();//读入一个字符(返回值为int型)
if(char.IsLetter(c))//是否是字母
if(char.IsLower(c))//是否是小写字母
用法示例-string型b=b+"ello";//+是连接字符串,b="hello"
比较两个字符串的最简单方法是使用==和!
=运算符,执行区分大小写的比较。
s1.CompareTo(s2)-1(s1s2)s.Length就是字符串长度
C#数组属于引用类型,其基类是System.Array
字符串中可以包含转义符
c:
\myFolder\myFile.txtstrings2="c:
\\myFolder\\myFile.txt";//不易阅读
C#字符串可以@开头,并用双引号引起来:
√strings3=@"c:
\myFolder\myFile.txt";
若要在一个用@引起来的字符串中包括一个双引号,则应使用两个双引号:
字符串转换为其它型的方法√类型.Parse()方法(很重要)Sytem.Convert.To类型()方法
strings1="123";
inta=int.Parse(s1);
textBox1.Text=Convert.ToString(i);
textBox2.Text=i.ToString();
将数字转换为字符串时,需要使用ToString()方法,或者使用Convert.ToString()方法。
foreach循环语句foreach(数据类型循环变量in集合){//执行语句块;}
int[]arr={1,3,5,2,4,6,8};foreach(intxinarr);//遍历数组
stringinput=Console.ReadLine();
foreach(charchrininput)
{if(chr.IsLetter(chr))letters++;//字母
elseif(chr.IsNumber(chr))digits++;//数字
elseif(chr.IsWhiteSpace(chr))spaces++;//空格
elseothers++;//其它}
C#基本输入输出
输出语句:
System.Console.Write();
System.Console.WriteLine();//有换行
输入语句:
System.Console.ReadLine();//读取一行字符
System.Console.Read();//读取一个字符(返回值为int型)
输出多个数据Console.WriteLine("{0}+{1}={2}",a,b,sum);//{占位符}数据用逗号分隔
Console.WriteLine("i={0,4},j={1,-7}",i,j);//4,7代表宽度,负号表示左对齐
Console.WriteLine("j={0:
f1}",j);//j=123.5//f表示浮点数,1表示小数位数(四舍五入)
Console.WriteLine("i={0,7:
x}",i);//i=︼︼︼︼︼7b
Console.WriteLine("i={0:
x}",i);//i=7b
//x表示16进制数“:
”后面对数据进行格式补充
C#数组属于引用类型,其基类是System.Array
一维:
类型[]数组名=new类型[数组大小]
二维:
类型[,]数组名=new类型[行数,列数]
交错数组(数组的数组):
例如:
int[][]数组名=new类型[个数][];
一位数组
int[]myArr=newint[5];//此时元素初值都为零
int[]myArr=newint[5]{1,3,5,7,9};
int[]myArr=newint[]{1,3,5,7,9};//数组大小可省略
int[]myArr={1,3,5,7,9};//快捷方式√(必须声明赋值一起)
二维数组
int[,]myArray=newint[4,2];//此时元素初值都为零
int[,]myArray=newint[4,2]{{1,2},{3,4},{5,6},{7,8}};
int[,]myArray=newint[,]{{1,2},{3,4},{5,6},{7,8}};
int[,]myArray={{1,2},{3,4},{5,6},{7,8}};//默认为矩阵(必须声明赋值一步到位)
GetLowerBound(int)、GetUpperBound(int)返回数组指定维数的下界和上界,维数从0开始
Array.Length返回Array数组的所有元素的总数
Array.Rank返回Array数组的秩(维数)
Array.GetLength(int)返回Array数组的指定维中的元素个数
交错数组
交错数组的元素是数组("数组的数组").
交错数组元素的维度和大小可以不同。
声明方式:
int[][]jaggedArr=newint[4][];
初始化方式1:
先声明后初始化
jaggedArr[0]=newint[6]{1,3,5,7,9,11};jaggedArr[1]=newint[2]{1,1};........
初始化方式2:
在声明数组时将其初始化:
int[][]jaggedArr=newint[4][]
{newint[]{1,3,5,7,9,11},
newint[]{1,1},
newint[]{2,4,6},
newint[]{1,0,0,0,1}
};
动态数组
方式1:
ArrayListal1=newArrayList();//该实例具有默认初始容量,但没有任何元素
方式2:
ArrayListal1=newArrayList(al2);//已有集合类来创建新的ArrayList,容量相同
方式3:
ArrayListal1=newArrayList(10);//用一个整数值来初始化ArrayList容量
Capacity-获取或设置ArrayList可包含的元素数。
Count-获取ArrayList中实际包含的元素数。
遍历ArrayList数组
staticvoidDisplayAL(ArrayListal)
{
if(al.Count<=0){Console.WriteLine("数组没有元素");}
foreach(objectsinal)
{
Console.WriteLine(Convert.ToString(s));
}
}
Add将单个对象添加到ArrayList的尾部ArrayListal=newArrayList();al.Add("a");
AddRange将集合实例添加到ArrayList的尾部string[]strs={"c","d","e"};al.AddRange(strs);
Insert将单个对象插入到ArrayList的指定索引处
InsertRange将集合实例插入到ArrayList的指定索引处
Remove(objectobj)-从前(索引0)往后查找,删除找到的第一个和obj相同的元素。
RemoveAt(intindex)-删除索引index对应的元素。
RemoveRange(intindex,intcount)-从索引index开始,删除count个元素。
Clear-从ArrayList中移除所有元素
Sort-对ArrayList或它的一部分中的元素进行排序。
//默认升序
Reverse-将ArrayList或它的一部分中元素的顺序反转。
al.Reverse();//全部反转
al.Reverse(1,2);//部分反转1开始索引2反转个数
Contains-确定某元素是否在ArrayList中(true/false)
IndexOf(objectvalue)-从前(索引0)往后查找,返回找到的第一个和obj相同的元素的索引
IndexOf(objectvalue,intstartIndex)
IndexOf(objectvalue,intstartIndex,intcount)
LastIndexOf(objectvalue)-从后往前(索引0)查找,。
。
。
。
。
。
返回第一个找到的索引
LastIndexOf(objectvalue,intstartIndex)
LastIndexOf(objectvalue,intstartIndex,intcount)
小结
C#语言的产生背景
.NetFramework命名空间
(1)提供类对象
(2)解决类名冲突
C#语言的变量和数据类型
(1)所有数据类型都是对象
(2)值类型(3)引用类型
C#语言的运算符、表达式和控制语句
C#语言的类和对象
(1)面向对象的思想——通过对象整合数据和数据操作
(2)类和对象的关系
(3)类的定义、构造函数、析构函数、数据成员、函数成员
第3章ASP.Net标准控件
ASP.Net页面的生命周期
首次载入
第一次以后的回传(PostBack)访问
Page_Load
IsPostBack属性
ASP.Net标准控件:
控件属性,控件事件
ASP.Net页面的生命周期
第一次访问:
1)预初始化和初始化:
PreInit;Init;*.aspx中的所有控件都已实例化并采取各自的默认值
2)页面装载:
细分PreLoad,Load,LoadComplete;主要是Page_Load运行这里面的程序
3)预呈现:
PreRender,可以利用该阶段来处理需要在保存和显示输出之前要做的操作。
4)保存状态:
SaveViewState所有控件,页面本身都将自己的值保存在_ViewState隐藏属性中。
5)呈现:
Render,输出6)卸载:
Page_Unload
用户第一次以后的回传访问(PostBack):
1)初始化:
Init
2)加载视图状态:
LoadViewState,从_ViewState中读出数据,它包含上次在服务器上处理时控件的状态。
3)处理回发数据:
ProcessPostData
获取回传回来的页面中的控件的状态,比如:
一个TextBox中可能已经填写了用户数据。
此时,控件就有机会更新其状态。
处理结束后,各个控件的状态就和它在客户端回传前的状态一致了。
4)页面装载:
Page_Load运行Page_Load里的代码。
5)发送回传更改通知:
RaiseChangedEvents
引发一个事件,以响应当前和以前状态的比较,发送一个回发更改通知。
比如:
TextBox的TextChanged事件。
6)处理回发事件:
RaisePostBackEvent处理用户引发回发的事件,比如,用户单击了一个按钮,将调用和这个按钮相关的代码来进行处理。
7)预呈现:
PreRender可以利用该阶段来处理需要在保存和显示输出之前要做更新操作。
8)保存状态:
SaveViewState9)呈现:
Render,输出10)卸载:
Page_Unload
Page的IsPostBack属性
通过页面的IsPostBack属性可以判断*.aspx页面是否为回传给服务器的页面。
一般在Page_Load事件中进行判断,并作相应的处理。
标准控件全部运行于服务器端,即必须显示声明:
runat="server".
这类控件在服务器端都以特殊的控件标签作为其HTML语法:
控件名称>控件名称>
当页面运行于客户端时,它们就会自动生成相应的符合HTML语法的控件标签。
TextBox文本编辑
Text获取或设置控件的文本内容
MaxLength获取或设置最多允许的字符数(单行或密码模式下适用)
TextMode获取或设置控件的显示模式(单行、多行或密码)SingleLinePasswordMultiLine
文本框:
textboxrunat="server"Text="请输入用户名">
textbox>
最多6位密码框:
textboxrunat="server"MaxLength="6"TextMode="Password"/>
多行文本框(不能自动换行):
textboxrunat="server"Rows="10"TextMode="MultiLine"Wrap="False"/>
Button/LinkButton/ImageButton
当用户单击这三种类型按钮中任何一个时,都会产生Click事件,同时都会自动产生向服务器回送的操作。
PostBackUrl获取或设置单击控件时从当前页发送到的网页的URL
Response.Redirect(“~\.......aspx”);
NavigateURL获取或设置HyperLink控件链接到的URL
AlternateText获取或设置ImageButton控件图像(ImageURL)失效时所显示文本
DropDownList只能单选
DropDownList控件实质是列表项(ListItem)容器,每个列表项对象都带有自己的属性,列表项可以通过手动或编程方式添加。
Items获取列表控件项的集合(Items属性
Text指定在列表中显示的文本
Value与列表某个选项相关联的值
Selected通过一个bool值指示是否选择该项)
SelectedIndex获取或设置DropDownList控件选定项的索引
SelectedValue获取DropDownList控件选定项的值,或选择指定值的项
SelectedItem获取DropDownList控件索引值最小的选定项
SelectedIndexChanged事件
当选择项发生改变时,触发该事件。
Click事件
protectedvoidButton1_Click(objectsender,EventArgse)
配合AutoPostBack=true自动产生向服务器回送的操作。
protectedvoidDropDownList1_SelectedIndexChanged(objectsender,EventArgse)
DropDownList1.Items.Count:
获取列表项总数
DropDownList1.Items.Add(项目名):
添加一个新项目
DropDownList1.Items.Remove(项目名):
删除指定项目
DropDownList1.Items.Insert(索引值,项目名):
在指定索引位置添加一个新项目
DropDownList1.Items.RemoveAt(索引值):
删除指定索引项
DropDownList1.Items.Clear():
清除所有项目
for(inti=0;i<10;i++)
{DropDownList1.Items.Add("选项"+i.ToString());}
遍历:
for(inti=0;iResponse.Write(DropDownList1.Items[i].Text+"
");
或者:
foreach(ListItemsinDropDownList1.Items)
Response.Write(s.Text+"
");
清除1:
效果一样吗?
for(inti=0;iDropDownList1.Items.RemoveAt(i);
清除2:
for(inti=DropDownList1.Items.Count-1;i>=0;i--)
DropDownList1.Items.RemoveAt(i);
清除3:
DropDownList1.Items.Clear();
第4章Web服务器验证控件
1.RequiredFieldValidator
2.CompareValidator
3.RangeValidator
4.RegularExpressionValidator
5.CustomValidator
6.ValidationSummary
RequiredFieldValidator确保用户输入数据时不会跳过必填字段(强制输入数据)
ControlToValidate获取或设置要验证的输入控件的ID√
InitialValue获取或设置要验证的输入控