C#参数传递之值参数

来源:互联网 发布:app下载数据统计 编辑:程序博客网 时间:2024/05/20 23:40

    C#参数传递有四种:值参数,引用参数,输出参数和数组参数。这里首先介绍一下值参数。值参数在处理时不需要任何修饰符,但参数类型有可能有两种:一种是值类型,另一种是引用类型。

    (1)当用值参数向方法传递参数时,程序给实参在栈中存储的内容做一份拷贝,并且将此拷贝传递给该方法,被调用的方法不会修饰实参的值,所以使用值参数时,可以保证实参的修士是安全的。

    (2)如果参数的类型是引用类型(例如,类),则拷贝中存储的也是对象的引用,因此此时拷贝和实参指向的是堆中的同一个对象,通过这个拷贝,可以修改实参所引用的对象中的数据成员。如下面的例子。

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{    class Student    {        public string Name        {            get;            set;        }        public double Score        {            get;            set;        }        public Student(string name, double score)        {            Name = name;            Score = score;        }    }    class SimpleMath    {         public void swap(Student stu1, Student stu2)        {            double temp = stu1.Score;            stu1.Score = stu2.Score;            stu2.Score = temp;        }    }    class Program    {        static void Main(string[] args)        {            Student stu11 = new Student("zxf", 98.5);            Student stu22 = new Student("zhang", 84.5);            Console.WriteLine("{0},{1}",stu11.Score,stu22.Score);            SimpleMath smp = new SimpleMath();            smp.swap(stu11, stu22);            Console.WriteLine("{0},{1}", stu11.Score, stu22.Score);            Console.ReadLine();        }    }}

     上述例子中,参数是Student这个类,因此是引用类型,通过SimpleMath的swap函数,将stu11和stu22中的score字段进行了交换。



0 0
原创粉丝点击