Как хранить Double в переменной Type? - PullRequest
0 голосов
/ 05 октября 2019

Я определил структуру:

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 #, так что, наверное, я сделалошибка новичка.

Любая помощь будет отличной, спасибо.

1 Ответ

2 голосов
/ 05 октября 2019

Синтаксис C # не позволяет использовать имя типа непосредственно в качестве значения. Вы должны использовать оператор typeof, чтобы получить объект Type:

DataType = typeof(Double)

Но это, вероятно, не так полезно, как вы думаете. Если намерение состоит в том, чтобы разрешить ShapeAttribute поддерживать значения различных типов, то у вас есть проблема, что Value все еще статически типизируется как double, поэтому DataType не дает вам никакой дополнительной информации. В зависимости от того, чего вы хотите достичь, вам может понадобиться вместо этого использовать универсальный тип.

...