我已经创建了一个用于在C#中处理单位转换的类.它不起作用,因为它应该只返回字符串.
这是班级:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace RestaurantManagementSystem
{
class unitHandler
{
public enum Units
{
Grams = 1,
KiloGrams = 0.001,
Milligram = 1000,
Pounds = 0.00220462,
Ounces = 0.035274,
Tonnes = 0.000001,
Litres = 1,
Millilitres = 1000,
Cups = 4.22675,
FluidOunces = 33.814,
TeaSpoon = 202.884,
TableSpoon = 67.628,
CubicFeet = 0.0353147,
CubicInch = 61.0237,
CubicCentimetres = 0.0001,
CubicMetres = 0.001
}
public double Convert_Value(Units from, Units to, double quantity)
{
double converted_quantity = 0;
double fromValue = quantity * Convert.ToDouble(from.ToString());
converted_quantity = fromValue * Convert.ToDouble(to.ToString());
return converted_quantity;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想以某种方式想要枚举类型包含每个单位的转换因子的双重值,然后使用它们进行转换并返回转换后的数量.
Adi*_*dil 13
不,枚举的默认类型是int
或者long
您不能使用小数字.你可以使用enum 的结构或类intead来实现double
public struct Units
{
public const double Grams = 1;
public const double KiloGrams = 0.001;
public const double Milligram = 1000;
public const double Pounds = 0.00220462;
public const double Ounces = 0.035274;
public const double Tonnes = 0.000001;
// Add Remaining units / values
}
Run Code Online (Sandbox Code Playgroud)
并使用它
double d = Units.KiloGrams;
Run Code Online (Sandbox Code Playgroud)
没有:
我尝试将其交给 Visual Studio:
public enum Test : double
{
Hello, World
}
Run Code Online (Sandbox Code Playgroud)
它说:
预期类型为 byte、sbyte、short、ushort、int、uint、long 或 ulong
归档时间: |
|
查看次数: |
16360 次 |
最近记录: |