使用函数更改类中的任何字段

时间:2019-03-31 17:52:21

标签: c# unity3d

我想更改任何数字变量,以便可以根据百分比或值来增加或减少数字变量,其方式类似于以下内容:

private int myvariable;
public (int, IncreaseType) MyVariable
{
    get
    {
        return myvariable;
    }
    set
    {
        if (value.Item2 == IncreaseType.Percentage)
        {
            myvariable = myvariable * value.Item1;
        }
        else
        {
            myvariable += value.Item1;
        }
    }
}

有没有一种方法可以在类中使用通用函数来更改任何类变量?

2 个答案:

答案 0 :(得分:0)

要使其更加通用(UPD:在设置百分比时会有一些问题):

//You can also make PerValue class
public struct PerValueInt
{
    public int Value;
    public PerValueInt(int value)
    {
        Value = value;
    }

    public void Percent (float percent)
    {
        Value = (int)(Value * (percent / 100f));
    }
}

并使用如下所示的内容:

public PerValueInt MyVariable = new PerValueInt(50);

//...
Debug.Log(MyVariable.Value); //prints 50
MyVariable.Percent(90);
Debug.Log(MyVariable.Value); //prints 45
//...

答案 1 :(得分:-1)

我建议您尝试一下此方法。

public void foo(int percentage) {
  this.myvariable *= (percentage/100);
}