黑马程序员技术交流社区

标题: 怎样实现调用者从被调用者中取得变量的值和被调用者从调用者中获得变量的值? [打印本页]

作者: ARMdong    时间: 2012-7-22 23:13
标题: 怎样实现调用者从被调用者中取得变量的值和被调用者从调用者中获得变量的值?
比如说,在Main方法中,怎样从该类的其他方法中取得变量的值;和在其他方法中怎样获得Main方法中变量的值。
作者: 飞翔的33    时间: 2012-7-23 07:28
可以使用全局变量,或者使用out或者ref关键字
作者: 许庭洲    时间: 2012-7-23 14:42
1,在Main函数内,将函数返回值赋值给一个变量即可,然后在函数里用return语句将结果传到Main方法里面的变量。
例如:
using System;
public class Rectangle
{
double height, width, area;
public Rectangle(double _height, double _width)
{
    this.height = _height;
    this.width = _width;
}

public double GetArea()
{
    area = height * width;
    return area;
}
public void Show()
{
    Console.WriteLine("该长方形面积是{0}", area);
}
}

class Progarm
{
static void Main()
{
    Rectangle r = new Rectangle(10, 12);
    r.GetArea();
   r.Show();
}
}
2,通过引用传递值类型,也就是说传递值(变量)的引用。
例如:
class PassingValByRef
{
    static void SquareIt(ref int x)
    {
        x *= x;
        System.Console.WriteLine("The value inside the method: {0}", x);
    }
    static void Main()
    {
        int n = 5;
        System.Console.WriteLine("The value before calling the method: {0}", n);//输出5

        SquareIt(ref n);  // Passing the variable by reference.
        System.Console.WriteLine("The value after calling the method: {0}", n);//输出25
    }
}
作者: 刘旺    时间: 2012-7-23 14:48
用out 和ref    但是要知道out参数只进不出,ref参数有进有出
static void TestRefAndOut()
        {
            string s1 = "Good Luck!";
            TestRef(ref s1);
            Console.WriteLine(s1);//output: Hello World!
        }
        static void TestRef(ref string str)
        {
            str = "Hello World!";
        }





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2