C#基本参数传递

时间:2015-08-29 11:59:35

标签: c# parameters get set

我是C#的新手我正在尝试将值传递给方法但是接收0.将实例创建到calc的main方法并在main中调用calc方法。

public void test()
{
var calc = new Calc();
calc.Add(1);
var actual = calc.Value;
}

public class Calc
{
        public int Value{
            get; set;
        }

        public void Add(int value)
        {
            int result = value + value;

        }

我正在尝试设置当前值,我该怎么做?

3 个答案:

答案 0 :(得分:1)

我建议稍微重构一下,以便变量名称更清晰。您最初的问题是,当您真正想要将其设置为您的财产时,您没有对结果做任何事情。

public class Calc
{
    public int CurrentValue { get; set; }

    public void Add(int number)
    {
        this.CurrentValue = this.CurrentValue + number;
    }
}

答案 1 :(得分:0)

Add方法的结果不存储在任何地方,即在方法完成后,释放所有分配的内存。如果您希望保存方法的结果,您应该返回它(这将需要更改您的方法&原型)或将其保存在您的类的成员中并使用适当的属性或getter方法访问它。

你的课应该是这样的:

public class Calc
{
        private int result;
        public int Value
        {
                get { return result; } 
                set { result = value; }
        }

        public void Add(int value)
        {
            result = value + value;

        }
}

请注意,目前Add方法只会将已发送参数value的两倍值的结果保存到班级成员result

答案 2 :(得分:0)

我想你想要更像这样的东西:

public class Calc
{
        public int Value{
            get; private set;
        }

        public void Add(int value)
        {
            this.Value += value;
        }
}

注意我已将Value更改为拥有私有的setter,以便只有Calc类可以更改其值,而其他对象仍然可以检索其值。

注意Add函数的更改,我们将传递给函数的value添加到Value属性中。在您的情况下,您只需在result方法的每次调用中创建一个新变量Add,然后对其执行任何操作。

您可以在行动here

中看到它