C# 如何确定在c中用var关键字声明的变量的类型# 我想从用户那个里获取输入并打印用户给出的输入类型 我试过这个
C# 如何确定在c中用var关键字声明的变量的类型# 我想从用户那个里获取输入并打印用户给出的输入类型 我试过这个,c#,.net,C#,.net,我也试过,但总是出错 using System; class Solution { static void Main(String[] args) { var userObj = Console.ReadLine(); if (string.Format(userObj) == string .Format("0")) { Console.WriteLine("it is of type interger"
我也试过,但总是出错
using System;
class Solution
{
static void Main(String[] args)
{
var userObj = Console.ReadLine();
if (string.Format(userObj) == string .Format("0"))
{
Console.WriteLine("it is of type interger");
}
}
}
尝试用一些不同的数据类型从最大到最小解析一些。我想你应该把这个号码存到最小的号码里
float var1;
double var2;
int var3;
if (float.TryParse(urMom, out var1))
Console.WriteLine("Float");
else if (double.TryParse(urMom, out var2))
Console.WriteLine("Double");
else if (int.TryParse(urMom, out var3))
Console.WriteLine("Int");
你误解了
var
在C#中的工作原理。C#是一种强类型语言,因此它与其他使用类似JavaScript的var
的语言不同。因此,声明为var的变量已经知道它在编译时是什么类型
Console.ReadLine()
返回一个字符串,因此在这个意义上变量userObj
将是一个字符串。除了字符串类型之外,您永远不会得到任何东西
但是,您可以尝试几种方法,看看是否可以将其转换为其他类型。例如:
var userInput = Console.ReadLine();
int x;
if(int.TryParse(userInput, out x))
{
Console.WriteLine("That's an int!");
}
您需要尝试将字符串解析为每种类型
5
对于double
和int
是完全有效的值,因此答案是不明确的。您的代码将变成if(int.TryParse(userObj,out-varơ){Console.WriteLine(“int”)}或者if(double.TryParse(…
等等)。@Rob是对的,因为Console.ReadLine()
总是给您一个字符串,您需要尝试解析到您要查找的每种类型(例如DateTime、int等)。可以帮助您。@Rob感谢它的工作。urMom
,非常成熟。另外,您使用的TryParse
错误,请允许我编辑。在您提交后立即捕获。此var1!=null
生成编译器警告,因为float
永远不能等于null。您可以内联您的声明,以使事情更加复杂adable,例如int.TryParse(longNumber,out int结果);Trace.WriteLine(结果)
@Janesabouchleich:好吧,这取决于你正在使用的C#编译器的版本。我希望它在针对.NET 2.0时仍能工作……这很好,还扩展了它的双精度和浮点值。但是,在提交代码挑战时,对糟糕的设计和语言进行了审查,有没有办法改进这段代码的设计或使用其他一些可能的方法。在不知道挑战的全部细节的情况下,除了可能会有一个循环,在无效输入时再次询问,并扩展类型以包括您提到的其他数据类型,如浮点/双精度。这是一项非常基本的任务。
var userInput = Console.ReadLine();
int x;
if(int.TryParse(userInput, out x))
{
Console.WriteLine("That's an int!");
}