Как найти Type
типа значения в C#?Как определить Тип значений типов
Скажем, у меня есть:
string str;
int value;
double doubleValue;
Есть метод, который возвращает тип любого из этих типов значений?
Чтобы яснее, я пытаюсь что-то вроде этого:
string str = "Hello";
string typeOfValue = <call to method that returns the type of the variable `str`>
if (typeOfValue == "string") {
//do something
} else {
//raise exception
}
Я хочу, чтобы получить ввод от пользователя и вызвать исключение, если введенное значение не string
или int
или double
в зависимости от моих условий ,
Я попытался:
public class Test
{
public static void Main(string[] args)
{
int num;
string value;
Console.WriteLine("Enter a value");
value = Console.ReadLine();
bool isNum = Int32.TryParse(value, out num);
if (isNum)
{
Console.WriteLine("Correct value entered.");
}
else
{
Console.WriteLine("Wrong value entered.");
}
Console.ReadKey();
}
}
но что, если тип значения я хочу проверить это string
или что-то еще?
'Object.GetType' ?! Но неясно, пользователь может ввести только строки. Таким образом, тип всегда является строкой. Если вы проанализируете его на тип номера, вы уже знаете тип во время компиляции. –
Просто примечание стороны, 'string' не является типом значений – Habib
Я не вижу * почему * вам это нужно здесь. Это может быть полезно, если у вас есть «Object», но строка, считанная с консоли, является строкой, и ничего больше, если вы ее не анализируете, тогда результат синтаксического анализа является известным типом в этой точке. – crashmstr