C#中四种参数传递

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //对于值型变量作为方法参数时,可以有三种情况:
        //1.没有ref和out参数  (直接传值,不能改变实参)
        //2.使用ref参数       (引用传递,输入,可以改变实参)
        //3.使用out参数       (引用传递,输出,可以改变实参)
        //4.ref和out的区别在于一个需要初始化,另一个不需要...

        Response.Write("params参数");
        this.Add(1, "afa", "bb", 3);
        this.Add("---
");

 

        string str = "a";
        this.Add(ref str);
        Response.Write("ref参数");
        Response.Write("str:        " + str + "
");

 

        int num;
        this.Add(out num);
        Response.Write("out参数");
        Response.Write("num:        " + num);

    }

    /// <summary></summary>
    /// 数组型参数:以params修饰符声明。params关键字用来声明可变长度的参数列表。方法声明中只能包含一个params参数。
    /// 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
    ///
    ///
    private void Add(params object[] list)
    {
        for (int i = 0; i < list.Length; i++)
        {
            Response.Write(list[i].ToString() + "
");
        }
    }
    /// <summary></summary>
    /// 引用参数:以ref修饰符声明。传递的参数实际上是实参的指针,所以在方法中的操作都是直接对实参进行的,而不是复制一个值;可以利用这个方式在方法调用时双向传递参数;为了以ref方式使用参数,必须在方法声明和方法调用中都明确地指定ref关键字,并且实参变量在传递给方法前必须进行初始化。
    ///
    ///
    /// <returns></returns>
    private void Add(ref string str)
    {
        str = "hello";       
    }

    /// <summary></summary>
    /// 输出参数:以out修饰符声明。和ref类似,它也是直接对实参进行操作。在方法声明和方法调用时都必须明确地指定out关键字。out参数声明方式不要求变量传递给方法前进行初始化,因为它的含义只是用作输出目的。但是,在方法返回前,必须对out参数进行赋值。
    ///
    /// <returns></returns>
    private void Add(out int num)
    {
        num = 100;
    }
}

你可能感兴趣的:(C++,c,UI,Web,C#)