【问题标题】:How to store Double in a Type variable?如何将 Double 存储在 Type 变量中?
【发布时间】:2020-02-03 15:02:42
【问题描述】:

我已经定义了结构:

public struct ShapeAttribute {
    public string Name;
    public Type DataType;
    public double Value;}

但是当我尝试执行以下操作时

ShapeAttribute Radius = new ShapeAttribute {
    Name = "Radius",
    DataType = Double, // <-problem here
    DataIsValid = false};

“双”有下划线,有人告诉我

'double' 是一个类型,在给定的上下文中它不是一个有效的参数。

我对 C# 的了解不多,所以我猜我犯了一个菜鸟错误。

任何帮助都会很棒,谢谢。

【问题讨论】:

  • 你可以试试 typeof(double) 或 typeof(Double) 吗?
  • 旁注:请不要为此使用structs。可变结构是邪恶的,可能导致不可预测的结果。

标签: c# typeof


【解决方案1】:

C# 语法不允许您直接使用类型名称作为值。您必须使用 typeof 运算符来获取 Type 对象:

DataType = typeof(Double)

但这可能没有您想象的那么有用。如果意图是让ShapeAttribute 支持不同类型的值,那么您的问题是Value 仍然静态类型为double,因此DataType 不会给您任何额外信息。根据您想要实现的目标,您可能需要改用泛型类型。

【讨论】:

    猜你喜欢
    • 2014-10-22
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多