传值、转引用的代码示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CcharpPatternDesign
{
    class Rectangle
    {
        // 成员变量
        double length;
        double width;
        public void Acceptdetails()
        {
            length = 4.5;
            width = 3.5;
        }
        public double GetArea()
        {
            return length * width;
        }
        public void Display()
        {
            Console.WriteLine("Length: {0}", length);
            Console.WriteLine("Width: {0}", width);
            Console.WriteLine("Area: {0}", GetArea());
        }
    }

    class Program
    {
        static void Test(ref Rectangle r)
        {
            r.Acceptdetails();
            r.Display();
        }

        static void Test2(Rectangle r)
        {
            if (r == null)
            {
                Console.WriteLine("Invalid parameter!");
            }
            else
            {
                r.Acceptdetails();
                r.Display();
            }
        }

        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            r.Display();

            Test(ref r);//传引用

            Test2(null);//传值,所以这种情况,对象有可能对空,那么我就需要加以判断
            Test2(r);//传值   

        }
    }
}

猜你喜欢

转载自jacky-dai.iteye.com/blog/2319058
今日推荐