ASP.NET学习既要总结

来源:互联网 发布:网络延时怎么解决 编辑:程序博客网 时间:2024/05/16 05:36
在接下来的几篇文章里,我着重介绍ASP.NET的基础知识。如果你是ASP.NET的初学者,我相信这几篇文章对你来说很有用。本文来自于我在学习过程中的笔记及经验总结,应该说是浓缩的精华。另外,我不仅仅介绍要点,而且还有实代码。所以当你看完笔记时,不要一看了之,希望您能够动手操作。好了,废话不多说了,让我来带领大家来学习ASP.NET。
1.Response对象---内置对象

   提供对当前页的输出流访问,可以向客户端浏览器发送信息,或者将访问者转移到另一个网址,并可以

输出和控制Cookies信息等。

   属性:

   Charset:以字符串的形式获取或设置输出流的HTTP字符集,eg.Response.Charset="UTF-8";

   Output:获取输出HTTP响应的文本输出

   OutputStream:获取HTTP内容主体的二进制数据输出流

   方法:

   Write:将指定的字符串或表达式的结果写到当前的HTTP输出内容流。

   WriteFile:将指定的文件写入当前的HTTP输出内容流

       eg.  Response.WriteFile("f:\\sun.txt");

   close:断开页面和服务器端的连接

   clear:清理当前页面的缓存

   Redirect:使浏览器立即重定向到指定的URL

       eg.

           Response.Redirect("login.htm");

           Response.Redirect("http://www.baidu.com");

 

2.Request对象---内置对象

    可以读取客户端浏览器已经发送的内容,了解客户端的机器配置、浏览器版本等信息。

    属性:

    Form:返回有关表单变量的集合。

    QueryString:返回附在URL后面的参数内容。

    URL:返回有关目前请求的URL信息。

    AplicationPath:返回被请求的页面位于web应用程序的哪个文件夹中

    Browser:返回浏览器信息,比如浏览器的名称(IE、火狐)

    Cookies:返回httpCookieCollection对象集合,可以查看访问者在以前访问站点时使用的Cookies

    UserHostAddress:返回远程客户端机器的主机IP地址

    UserHostName:

    方法:

    MapPath:

    SaveAs:HTTP请求的信息存储到磁盘中

 

    Browser属性:Resquest.Browser中,浏览器属性

       ActiveControls:是否支持ActiveX控件

       BackgroundSounds:是否支持背景音乐

       Version:浏览器版本号

       Browser:浏览器类型

       **********************

 

    读取表单数据

    eg.  String name=Request.Form.Get(textbox1.text);

 

3.获取用户传递的参数

    Request对象的QueryStringchacha属性可以获取表示HTTP查询字符串的变量集合,也可以利用

QueryString属性根据索引来取得参数值。Request.QueryString可以视为一种简单的页面传值方式。

 例如:使用到Response对象的Redirect方法来实现页面的重定向,需要使用Request对象的QueryString

属性来获取页面的值,使用Response对象的write方法将用户名和密码输出到页面上。

   实现过程:

   button1_click(*****)

   {

      Response.Redirect("login.aspx?username="+textbox1.text+"&password="+textbox2.text);

   }

   新建一个web页面  login页面

   page_Load(********)

   {

      Response.Write("UserName:"+Request.Querystring["username"]+"<br>");

      *********

   }

 

4.Server对象

   提供对服务器信息的访问,例如可以访问服务器的名称。

   属性:

   MachineName:获取服务器的计算机名称

   ScriptTimeOut:获取和设置请求超时的时间(/以秒记),例如 Server.ScriptTimeOut=60;

   方法:

   CreateObject:创建COM对象的一个服务器实例。

   Transfer:终止当前页的执行

   MapPath:返回文件所在物理磁盘的准确位置

      eg.   Server.MapPath("");//当前目录

             Server.MapPath("../")//其上一级目录

   编码解码等等

 

5.Application对象

   可以产生一个全部的Web应用程序都可以存取的变量,只要正在使用这个网页程序的用户都可以存取这个

变量。

   语法如下:

   Application["变量名"]="变量内容";

   变量=Application["变量名"];

   属性:

   All:返回全部的Application对象变量并存储到一个Object类型的数组中。

   Count:获取Application对象的变量的数量

   方法:

   Add:新增一个新的Application对象

   Lock:锁定全部的Application对象

   GetKey:输出变量名   Application.GetKey[0];//输出第一个变量名

   eg.

       Application.Add("App1","Values1");//添加一个新的Application对象变量

       Application.Add("App2","Values2");

       Application.Add("App3", "Values3");

       for (int i = 0; i < Application.Count; i++)

       {

Response.Write("变量名"+Application.GetKey(i)+":"+Application[i]+"<br>");

       }

       Application.Clear();

    eg.网页计数器,即简单的网页计数

       Application.Lock();//锁定,不允许其他用户修改

       Application["counter"]=convert.ToInt32(Application["counter"])+1;

       Application.Unlock();//解锁

6.Session对象

   用来存储特定用户会话所需的信息,Session对象变量只针对单一的网页使用者,即各个客户端的机器

有各自的Session变量,不同的客户端无法相互存取。

   属性:

   Count:获取会话状态集合中Session对象的个数。

   TimeOut:设置响应时间

   SessionID:获取用于标示会话的唯一会话ID

   Abandon():终止Session对象

   eg.

          protected void add_Click(object sender, EventArgs e)//添加商品数

{

if (Session["counter"] != null)

{

int i = (int)Session["counter"];

i++;

Session["counter"] = (object)i;

}

else

Session["counter"] = 1;

Response.Write("商品数为:"+Session["counter"].ToString());

}

protected void clear_Click(object sender, EventArgs e)//清零

{

Session["counter"] = 0;

Response.Write("商品数为:" + Session["counter"].ToString());

}

 

7.Cookies对象

  它会随着用户请求和页面传递在Web服务器和客户端浏览器之间传递。

  例如.当用户访问一个站点时,可以利用Cookie保存用户信息,这样,当用户下次访问该站点时,应用程序

就可以检索以前的保存信息。Cookie将信息保存在客户端

  语法格式比较不同,格式如下:

  Response.Cookie("Name").Value=表达式;//创建Cookie变量

  Response.Cookie.Add(Cookie对象名)//写入Cookie对象

  变量=Response.Cookie("Name").Value;//读取Cookies变量

  属性:

  Name:获取或设置Cookies的名称

  Value:获取或设置Cookies的值

  Expires:获取或设置Cookies的过期日期和时间

  Add:新增一个Cookies变量

  eg.记录用户上一次的访问时间

     //存储Cookies变量

     Response.Cookie["LastVisit_Time"].Value=System.DataTime.Now.ToString();

    

     //取回Cookie变量

     string lastVisitTime=Request.Cookie["LastVisit_Time"].Value.ToString();

     Response.write(Request.Cookie["LastVisit_Time"].Name+":");

     Response.write(lastVisitTime);

 

8.ASP.NET Web服务器控件的共有属性

   AccessKey:用来为控件指定键盘的快捷键

   边框属性: BorderWidth:边框宽度

                BorderColor:边框颜色

               

   Enable:用来设置禁止或者使能控件

   TabIndex:设置Tab按钮的顺序

   ToolTip:设置控件的提示信息

 

9.TextBox控件

   属性:

   AutoPosBack:用于设置在文本修改后,是否自动回发到服务器。

   Columns:获取或设置文本框的显示宽度。

   MaxLength:获取或设置文本框中最多允许的字符数

   TextMode:行为模式,比如密码

   Wrap:获取或设置一个值,该值指示多行文本框的文本是否换行

   事件:

   TextChanged:在文本框的文本被更改后激发该事件,注意一定要将文本的AutoPostBack属性设置

true,在修改后,自动回发到服务器,才能激发该事件

 

10.HyperLink(超链接文本)控件

    属性:

    Text:获取或设置HyperLink控件的文本标题

    NavigateUrl:链接到URL

    Target:_blank表示新窗口显示,_parent表示显示在上一个框架集父级中,_self显示在当前框架中,

              _top显示在没框架的全窗口中

    ImageUrl:获取或设置图片的路径

    eg.

       page_Load(*******)//Web1  login.aspx.cs

       { 

            Label newlabel=new Label();

            *******

            Page.Controls.Add(newlabel);//将标签添加到页面中去

       }

 

11.Button(普通按钮)控件

    CommandName:获取或设置Button按钮将要触发事件的名称

12.Image控件

    newML.NavigateUrl="?n="+i.toString();

    *******

    Image.ImageUrl="~/images/图片"+Request.QueryString["n"]+".jpg";

    ImageMap图像地图控件

 

13.CheckBoxList(复选框)控件

    属性:

    CellPadding:各项的距离

    Items:获取控件的ListItem参数  eg.checklist1.items.count;表示项的数目

            items.Add(***);增加项

    SelectedValue:获取选定项的值

    RepeatDirection:显示方向

    Repeat

    ListItem:元素

    RadioButton13类似

 

14.ListBox(列表框)控件

    属性:

    Items:获取ListBox控件里面的所有项

    Rows:获取或设置ListBox控件中显示的行数

    SelectIndex:获取或设置最低索引号

    SelectItem:获取索引号最低的选定项

    SelectValue:选定项的值

    clear:清空,利于初始化

    eg.

     switch(listbox1.SelectIndex)

     {

         case 0:

         listbox2.Items.Add("上海");

     }

 

15.DropDownList(下拉列表)控件

   

 

16.Panel(面板)控件

    属性:

    BackImageUrl:用来设定Panel背景图片

    ******

    panel1.Controls.Add(*******);

 

17.动态容器控件PlaceHolder

    16类似

 

18.动态广告控件AdRotator

    通过XML文件来设置属性,然后调用

    属性:

    AdvertisementFile:获取或设置包含公布信息的XML文件路径

    XML公布文件的数据元素<Advertisments></Advertisments>

    <imageUrl>:图像文件的绝对或相对Url

    <NavigateUrl>:当用户单击公布时要链接到的页URL

 

19.日历控件Calendar

    eg.

      获取年:  yy=Calendar1.SelectDate.Year.ToString();

      获取星期数值: int x=(int)Calendar1.SelectDate.DayOfWeek;

    事件:  Calendar1_DayRender()

    判断是否为周末     if(e.Day.IsWeekend)

    e.Cell.BackColor=Color.Blue;//设置特别日的背景色

    e.Cell.Controls.Add(new LiteralControl("<br>休息日"));//在特别日下方添加文字

    eg.

   

          if (isDays(e.Day.Date.Month, e.Day.Date.Day))

{

e.Cell.BackColor = System.Drawing.Color.Wheat;

 

//设置特别日背景色

e.Cell.Controls.Add(new LiteralControl(days[e.Day.Date.Month-1])); //在特别日下方添加文字

 

}

 

20.FileUpload(文件上传)控件

    属性和方法:

    SaveAs:将文件保存到Web服务器上的指定路径,路径由SaveAs方法的参数FileName给出

    HasFile:判断是否有文件

    eg.

       string savepath=Server.MapPath("~/upload");

       string filename=FileUpload1.FileName;

       FileupLoad1.SaveAs(savepath);

       FileUpload1.PostedFile.ContentLength;//文件大小

 

21.Wizard(向导)控件----一步一步引领注册

   page_load()

   if(!page.isPostback)//初始化设置,不返回事件

   {

   }

22.验证控件

    a.  RequiredFieldValidator用于验证页面的某些用户输入内容是否为空

    b.  RegularExpressionValidator:验证格式是否正确

     eg.如果通过的化

        

          protected void btOK_Click(object sender, EventArgs e)

{

if (RegularExpressionValidator2.IsValid)

{

Label1.Text = tbEmail.Text;

}

else

Label1.Text = "";

}

    c.  RangeValidator:范围

    d.  CompareValidator:验证两次输入是否一样  eg.密码的的两次输入

        Operator:指定要执行的类型  大于 小于 等等

 

    e.  CostomValidator:用户自定义验证

    f.   ValidationSummary:其他控件错误报告汇总

         BulletList:默认的显示方式

         List:每个提示信息都显示在不同行中

 

23.验证时给错误的信息添加图像和声音

    Eg.

        ErrorMessage='<img src="forbidden.gif">';//当有错误时显示该图片

 

24.加载XML文件

     XmlElement:表示Xml文档中的元素

     XmlAttibute:表示Xml文档的属性

     eg.

     using System.Xml;

     ***********

     XmlDocument doc=new XmlDocument();

     doc.Load(Request.PhysicalApplicationPath+"books.xml");

     XmlElement element=doc.DocumentElement;//表示文档根节点的XmlElement对象,就可以使用

                                            XmlElement所提供的属性和方法来处理文档中的其他节点和属性

     eg.

    

          lbXmlNodes.Items.Clear();//清除ListBox

 

XmlDataDocument doc = new XmlDataDocument();

doc.Load(Server.MapPath("..") + "\\books.xml");//加载XML文档

RecurseXmlDocument((XmlNode)doc.DocumentElement, 0);

 

     XmlElement类的属性

     FirstChild:获取根节点之后的第一个子节点

     LastChild:最后一个子节点

     ParentNode:返回当前节点的父节点

     NextSibling:返回的是当前节点的下一个兄弟节点

     HasChildNodes

 

25.所有的div放在Form

26.enum的运用

   eg.

     

          private enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

public static void Main()

{

Console.WriteLine("Sun = " + (int)Days.Sun);

Console.WriteLine("Wed = " + (int)Days.Wed);

}

 

27. 结构体

    eg.

   

          struct student

{

public string s_ID, s_name, s_sex;

public int s_age;

};

public static void Main()

{

student info;

info.s_ID = "10001";

info.s_name = "Echo";

info.s_sex = "";

info.s_age = 23;

Console.WriteLine("学号是"+info.s_ID);

Console.WriteLine("姓名是"+info.s_name);

Console.WriteLine("性别是"+info.s_sex);

Console.WriteLine("年龄是"+info.s_age);

}

 

28.数组

   二维数组中间用","隔开   例如

          int[,] myArray1 = { { 0, 1 }, { 2, 3 }};

//定义另一个2*2的矩阵,使用new关键字初始化

int[][] myArray2 = new int[2][];

myArray2[0] = new int[] { 1, 2 };

myArray2[1] = new int[] { 3, 4 };

//计算两个矩阵的和

int[][] myArray3 = new int[2][];

myArray3[0] = new int[2];

myArray3[1] = new int[2];

myArray3[0][0]=myArray1[0,0]+myArray2[0][0];

myArray3[0][1]=myArray1[0,1]+myArray2[0][1];

myArray3[1][0]=myArray1[1,0]+myArray2[1][0];

myArray3[1][1]=myArray1[1,1]+myArray2[1][1];

 

29.一个字符的字符串转化为字符

  eg.

     string str="y";

     char ah=str.ToLower();

 

30.Foreach的用法

 eg.

          string[] weekdays ={

"Monday","Thuesday","Wednesday","Thursday","Friday","Saturday","sunday"};

 

Console.WriteLine("输出结果是:");

foreach (string day in weekdays)

{

Console.WriteLine(day);

}

 

31.静态方法和静态成员

  在静态方法中可以访问静态数据成员

  在静态方法中不能访问非静态成员(实例成员)

  在实例方法中可以访问非静态成员(实例成员)

  静态方法不需要实例化

32.数据绑定

  第一步:下拉列表  DropDownList 对数据范围进行选择.并采用post

  第二步:拖进FormView绑定数据  最后还要加上第一步的范围  eg ******where [**]=?

             注意任何一步若受到其他步的限制,注意要加上 ******where [**]=?

Listview以表格的方式显示

 

BulletedList:以编号的方式显示  用<asp:ListItem>在中间添加数据

 

asp:AdRotator:广告控件   AdvertisementFile=".\\ad\\adXMLFile.xml"设置广告来源

 

33.按钮事件的另一种表现方式

  Button_Command

<asp:Button ID="Button3" runat="server" Text="递增显示数字" CommandName="ShowNumbers_Asc" CommandArgument="Asc" OnCommand="Button_Command" />

 

protected void Button_Command(object sender, CommandEventArgs e)

{

//根据按钮的CommandName 进行分支

switch (e.CommandName)

{

case "ShowNumbers_Asc":

//输出一行说明信息

Page.Response.Write("单击的是按钮“递增显示数字”!<br>");

//调用不同的方法,并传递CommandArgument 参数

ShowNumbers(e.CommandArgument);

break;

case "ShowNumbers_Desc":

Page.Response.Write("单击的是按钮“递减显示数字”!<br>");

ShowNumbers(e.CommandArgument);

break;

default:

break;

}

}

/// 输出数字

protected void ShowNumbers(object commandArgument)

{

Page.Response.Write("数字排序方式为:("+ commandArgument.ToString() + ")<br>");

if (commandArgument.ToString() == "Asc")

{

Page.Response.Write("1 2 3 4 5");

}

else if ((commandArgument.ToString() == "Desc"))

{

Page.Response.Write("5 4 3 2 1");

}

}

 

34.CheckBox的运用  注意PostBack

   用另外一个函数进行总括  因为checkbox是独立的,可以用总括

 

35.checkboxList

   因为元素不是独立的,而是放在一个整合容器里,所以不能在外面定义一个函数进行总括,添加选项

aspListitem

   代码:

protected void wang(object sender, EventArgs e)

{

Response.Write("所选门数有:");

foreach (ListItem item in CheckBoxList2.Items)

{

if (item.Selected)

Response.Write(item.Text + "  ");

}

}

 

DropDownList又是另外一种方式  他用case  value    aspListitem

<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">

<asp:ListItem Value="0">百度</asp:ListItem>

<asp:ListItem Value="1">谷歌</asp:ListItem>

</asp:DropDownList>

Eg.

switch (DropDownList1.SelectedValue)

{

case "0": //选择“百度”

Page.Response.Write("你喜欢使用百度!");

break;

case "1": //选择“谷歌”

Page.Response.Write("你喜欢使用谷歌!");

break;

default:

break;

}

 

 

36.链接

if(RadioButton1.Checked==true)

HyperLink1.NavigateUrl = "http://www.google.cn";

else

HyperLink1.NavigateUrl = "http://www.baidu.com";

}

 

37.image控件

if (RadioButton1.Checked == true)

Image1.ImageUrl = "./Image/googlelogo.gif";

else

Image1.ImageUrl = "./Image/googlelogo.gif";

 

38.Imagebutton控件

 

39.ImageMap控件

<asp:ImageMap ID="ImageMap1" runat="server" ImageUrl="Image/TwoE.gif" OnClick="ImageMap1_Click" HotSpotMode="PostBack">

<asp:RectangleHotSpot hotspotmode="PostBack" top="250" left="298" bottom="147" right="206" PostBackValue="A"></asp:RectangleHotSpot>

<asp:RectangleHotSpot hotspotmode="PostBack" top="386" left="491" bottom="253" right="370" PostBackValue="B"></asp:RectangleHotSpot>

</asp:ImageMap></div>

对应的

if (e.PostBackValue == "A")

Response.Write("你单击了前面的鹅!");

else if (e.PostBackValue == "B")

Response.Write("你单击了后面的鹅!");

 

40.LinkButton控件

if (RadioButton1.Checked == true)

Page.Response.Redirect("http://www.google.cn");

else

Page.Response.Redirect("http://www.baidu.com");

 

41.ListBox控件

for (int i = 0; i < ListBox1.Items.Count; i++)

{

//如果选择了该项

if(ListBox1.Items[i].Selected)

Response.Write(ListBox1.Items[i].Text + " ");

}

 

42.Panel控件

for (int i = 0; i < ListBox1.Items.Count; i++)

{

//如果选择了该项,则动态生成一个Label,并放在Panel1 

if (ListBox1.Items[i].Selected)

{

Label label1 = new Label(); //生成一个标签

label1.Text = "Label" + i.ToString() + ": " + ListBox1.Items[i].Text; //设置Text

label1.BorderWidth = 1; //设置标签Border 线条宽度

label1.BorderColor = System.Drawing.Color.Black; ;//设置标签Border 线条言责

Panel1.Controls.Add(label1); //将标签添加今Panel 

Panel1.Controls.Add(new LiteralControl("<br>"));//Panel 中添加一个"<br>"

}

}

43.radioButtonList

switch (RadioButtonList1.SelectedValue)

{

case "1":

Response.Write("你喜欢使用百度!");

break;

case "2":

Response.Write("你喜欢使用谷歌!");

break;

default:

break;

}

 

 

 

44.索引的创建  也就是 下一步  下一步的运行

   a.拖进ScriptManager  

   b.拖进UpdatePanel控件  contentPanel

   c.拖进Wizard控件  注意该控件放入UpdatePanel

 

<StepStyle Font-Size="0.8em" ForeColor="#333333" />//设置右边字体

<SideBarStyle BackColor="#ff0000" Font-Size="0.9em" VerticalAlign="Top" />//设置左边

<NavigationButtonStyle BackColor="White" BorderColor="#507CD1"BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana"Font-Size="0.8em" ForeColor="#284E98" />

//设置下一步按钮

 

   d.添加WizardSteps   <asp:WizardStep  分别是步骤

<asp:WizardStep ID="WizardStep1" runat="server" StepType="Start" Title="指定票券张数">

 

   e.最后设置左边字体

<SideBarButtonStyle BackColor="#00ff00" Font-Names="Verdana"

ForeColor="White" />

   f.设置标题格式

<HeaderStyle BackColor="#284E98" BorderColor="#EFF3FB" BorderStyle="Solid"

BorderWidth="2px" Font-Bold="True" Font-Size="0.9em" ForeColor="White"

HorizontalAlign="Center" />

   g.设置标题

<HeaderTemplate>

订购您的入场券&nbsp;

</HeaderTemplate>

 

45.插入时间

<%=DateTime.Now.ToString() %>

 

<ContentTemplate>

 

<fieldset><legend>UpdatePanel</legend>//局部标题

 

 

46.标题

<asp:Panel ID="Panel1" runat="server" GroupingText="UpdatePanel 控件的内容" Height="64px"

Width="432px">//grouppanel的标题

 

 

47.图像热点 imageMap

<asp:ImageMap ID="ImageMap2" runat="server" Height="350px" Width="400px" ImageUrl="~/pic/1.jpg">

<asp:CircleHotSpot AlternateText="图形热点" NavigateUrl="~/pic/2.jpg" Radius="100" X="100" Y="100" />

</asp:ImageMap>

 

48.委托的基本语法

delegate int myDelegate();

public class MyClass

{

public int A()

{

Console.WriteLine("王彪");

return 0;

}

public static int B()

{

Console.WriteLine("wangbiao");

return 0;

}

}

class Program

{

static void Main(string[] args)

{

MyClass a = new MyClass();

myDelegate c = new myDelegate(a.A);

c();

 

c = new myDelegate(MyClass.B);

c();

}

}

 

49.装箱子

int i1 = 10;

object j1 = i1;//装箱

if (j1 is int)

{

Console.WriteLine("The value of i is boxing!");

}

 

int i=10;

object j=i;

int k=(int)j;//拆箱

 

decimal z= 12.34m;//表示十进制数

 

50.out,ref区别

Out:表示已经存在,,必须有初值

ref:是引用类型,一般都初始化了,通过传值拥有自己的值

Ref指明了方法中使用的是引用型参数,引用型参数不开辟新的内存区域。当利用引用型参数向方法传递形参时,编译程序将把实际值在内存中的地址传递该方法。引用型参数通常已经初始化。   

 

在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:

1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。

2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。

3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

注:在C#中,方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array)。传值参数无需额外的修饰符,传址参数需要修饰符ref,输出参数需要修饰符out,数组参数需要修饰符params。传值参数在方法调用过程中如果改变了参数的值,那么传入方法的参数在方法调用完成以后并不因此而改变,而是保留原来传入时的值。传址参数恰恰相反,如果方法调用过程改变了参数的值,那么传入方法的参数在调用完成以后也随之改变。实际上从名称上我们可以清楚地看出两者的含义--传值参数传递的是调用参数的一份拷贝,而传址参数传递的是调用参数的内存地址,该参数在方法内外指向的是同一个存储位置。

 

static void F(params int[] var)

{

Console.WriteLine("Length of array:{0}",var.Length);

for(int i=0;i<var.Length;i++)

Console.WriteLine("var[{0}]={1}",

i,var[i]);

}

static void Main()

{

F();F(1,2);F(new int[]{1,2,3});

}

 

 

 

 

51.TreeView运用Xml文件

先运用XmlDataSource控件导入

Treeview紧跟其后

xml文件

<?xml version="1.0" encoding="utf-8" ?>

<站点目录>

<关于我们 Url="~/About.aspx" />

<服务范围 Url="~/ServerH.aspx" />

<诚聘英才 Url="~/waybill.aspx" />

<联系我们 Url="~/we.aspx" />

<王彪 Url="~/we.aspx" />

</站点目录>




原创粉丝点击