如何在静态方法C#中访问内部私有变量

时间:2018-12-19 12:33:37

标签: c# mvvm methods model static

我正在MVVM中进行编码,并且具有Calculation类。在此Calc类内部,我有不同的静态Memberfunction,每个函数都会计算一部分计算量。

例如: 内部Calc类:

成员功能之一:

public static double CalcTimeJerkAcc(double limitedAcceleration, double maxJerk)
{
    return (limitedAcceleration / maxJerk);
}

我使用timeJerkAcc的另一个Memberfunction:

public static double CalcCalculation(double timeJerkAcc, ...) { ... }

现在我想将这些计算实现为模型:

public double PositioningTime
    {
        get
        {
             return CalcClassObject.CalcCalculation(CalcClassObject.timeJerkAcc, ...); 
        }
    }

我如何从Calc类访问私有变量(例如“ timeJerkAcc”),尽管它们是静态的? 我在CalcClassObject.timeJerkAcc的传输参数中使用CalcClassObject.CalcCalculation(...)的方法显然是错误的。 我被卡住了。有人可以帮我解决这个问题吗?我对C#相当陌生,希望这不是一个愚蠢的问题...

很难很好地描述我的问题,但我希望有人能理解我的工作。

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解正确,但是您想创建一个调用静态方法和变量的模型。

因此,我创建了一个小片段,希望对您有所帮助:

这是主要班级:

class Solution
{
    static void Main(string[] args)
    {
        MyModel model = new MyModel();

        Console.WriteLine(model.PositioningTime);
        Console.ReadLine();
    }
}

和Calculation类:

public class Calculation
{
    public static double timeJerkAcc = 12;
    public static double maxJerk = 30;
    public static double CalcTimeJerkAcc(double limitedAcceleration, double maxJerk)
    {
        return limitedAcceleration / maxJerk;
    }

    public static double CalcCalculation(double timeJerkAcc, double temp)
    {
        return timeJerkAcc / temp;
    }
}

最后是Model类:

public class MyModel
{
    public double PositioningTime
    {
        get
        {
            return Calculation.CalcCalculation(Calculation.timeJerkAcc,Calculation.maxJerk);
        }
    }
}

要调用当前类之外的静态变量或方法,必须将它们设置为 public

希望这对您有帮助,如果没有帮助,请尝试用更多详细信息解释您的问题,

致谢。