相关疑难解决方法(0)

使用真实世界单位而不是类型

我有一个涉及许多现实世界单位的许多计算项目:

  • 距离;
  • 温度;
  • 流量;
  • ...

该项目涉及复杂而众多的计算公式.

这就是为什么我认为使用像Temperature,Distance ...... 这样的自定义类型可以提高代码的可读性.例如:

Temperature x = -55.3;
Meter y = 3;
Run Code Online (Sandbox Code Playgroud)

要么

var x = new Temperature(-55.3);
Run Code Online (Sandbox Code Playgroud)

我试图制作一个使用双内部值的Temperature类.

public class Temperature
{
    double _Value = double.NaN;

    public Temperature() { }

    public Temperature(double v) {
        _Value = v;
    }

    public static implicit operator Temperature(double v) {
        return new Temperature(v);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是类可以为空.这意味着:

Temperature myTemp;
Run Code Online (Sandbox Code Playgroud)

是"正确的",将为空.我不想要这个.我不想使用结构,因为它们太有限了:

  • 他们不能使用无参数构造函数或实例字段初始化器double _Value = double.Nan;来定义默认值(我的默认底层double值为NaN)
  • 它们不能从类继承,它们只能实现接口

我想知道是否有办法告诉C#:

Temperature myTemp = 23K; // C# does not implement …
Run Code Online (Sandbox Code Playgroud)

c# types units-of-measurement

10
推荐指数
2
解决办法
1997
查看次数

使用方法在C#中将华氏温度转换为摄氏温度

大家好,我是新手,目前是计算机科学专业的大一学生。我们已经进行了一项练习,其中我们必须使用方法将华氏温度转换为摄氏温度(教授建议不要使用静态方法)。我们从C#开始。这是我的代码。

namespace Week3_Exe3._1{
public class Formula
{
    public double F;
    public double C;

    public void calculate(double F, double C)
    {
        C = (5 / 9) * (F - 32);

    }

    public static void Main(string[] args)
    {

    Console.WriteLine("Please enter the Fahrenheit you wish to convert");
        F = double.Parse(Console.ReadLine());

        Formula form = new Formula();

        Console.WriteLine(F + "Fahrenheit correspond to " + form.calculate() + "Degrees celcius");
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我目前正在使用Visual Studio Community 2015并在form.calculate中使用错误将计算结果冲掉

CS7036 C#没有给出与“ Formula.calculate(double,double)”的所需形式参数“”相对应的参数

我搜索了它,但仍然不明白缺少了什么。我创建了一个要使用的实例,但无法正常工作。谁能给我答案?

c# methods

5
推荐指数
1
解决办法
3870
查看次数

标签 统计

c# ×2

methods ×1

types ×1

units-of-measurement ×1