我只是好奇C#语言或.NET Framework是否内置了可用于检测某个变量是否为整数的功能。
if (x is an int)
// Do something
在我看来可能会有,但我只是一名一年级的编程学生,所以不确定。
使用int.TryParse方法。
string x = "42";
if(int.TryParse(x, out int value))
// Do something
如果成功解析,则该函数将返回true,并将输出结果作为整数值。TryParse
方法。如果你有一个字符串,使用TryParse
通常是将其转换为这些类型中的一种的最佳实践。 - dtb< 0
检查即可。 - Brandon如果你只是想检查传递变量的类型,你可能可以使用:
var a = 2;
if (a is int)
{
//is integer
}
//or:
if (a.GetType() == typeof(int))
{
//is integer
}
我记得曾经看过int.TryParse和int.Parse、Regex以及char.IsNumber之间的性能比较,而char.IsNumber是最快的。无论如何,这里有一种新的方法来实现相同的功能。
bool isNumeric = true;
foreach (char c in "12345")
{
if (!Char.IsNumber(c))
{
isNumeric = false;
break;
}
}
isNumeric
设为 false... - Chtioui Malek对于 Wil P 的解决方案 (见上文),您也可以使用 LINQ。
var x = "12345";
var isNumeric = !string.IsNullOrEmpty(x) && x.All(Char.IsDigit);
如果你只是想检查它是否为字符串,你可以直接在方法调用中放置“out int”关键字。根据dotnetperls.com网站的说法,在旧版C#中不允许使用此语法。通过这样做,你可以减少程序的行数。
string x = "text or int";
if (int.TryParse(x, out int output))
{
// Console.WriteLine(x);
// x is an int
// Do something
}
else
{
// x is not an int
}
string x = "text or int";
int value = 0;
if(int.TryParse(x, out value))
{
// x is an int
// Do something
}
else
{
// x is not an int
}
Method 2
string x = "text or int";
int num = Convert.ToInt32(x);
Console.WriteLine(num);
Referece: https://www.dotnetperls.com/parse
很简单,使用这段代码
bool anyname = your_string_Name.All(char.IsDigit);
0.0
或 1,000
(如果你在某些地区,则为 1.000
),但 TryParse 也没有包括,所以我想它并不更糟糕。 - Nathan Tuggy这个函数将告诉您是否仅包含字符0123456789的字符串。
private bool IsInt(string sVal)
{
foreach (char c in sVal)
{
int iN = (int)c;
if ((iN > 57) || (iN < 48))
return false;
}
return true;
}
private bool isNumber(object p_Value)
{
try
{
if (int.Parse(p_Value.ToString()).GetType().Equals(typeof(int)))
return true;
else
return false;
}
catch (Exception ex)
{
return false;
}
}
我之前写过一些东西。上面有一些很好的例子,但只是我的个人看法。
try
{
Console.Write("write your number : ");
Console.WriteLine("Your number is : " + int.Parse(Console.ReadLine()));
}
catch (Exception x)
{
Console.WriteLine(x.Message);
}
Console.ReadLine();
我学编程大约两个星期了,刚刚创建了一个简单的逻辑来验证是否接受了一个整数。
Console.WriteLine("How many numbers do you want to enter?"); // request a number
string input = Console.ReadLine(); // set the input as a string variable
int numberTotal; // declare an int variable
if (!int.TryParse(input, out numberTotal)) // process if input was an invalid number
{
while (numberTotal < 1) // numberTotal is set to 0 by default if no number is entered
{
Console.WriteLine(input + " is an invalid number."); // error message
int.TryParse(Console.ReadLine(), out numberTotal); // allows the user to input another value
}
} // this loop will repeat until numberTotal has an int set to 1 or above
如果您喜欢不在循环的第三个参数中声明动作,您也可以在FOR循环中使用上述方法,例如
Console.WriteLine("How many numbers do you want to enter?");
string input2 = Console.ReadLine();
if (!int.TryParse(input2, out numberTotal2))
{
for (int numberTotal2 = 0; numberTotal2 < 1;)
{
Console.WriteLine(input2 + " is an invalid number.");
int.TryParse(Console.ReadLine(), out numberTotal2);
}
}
x
的数据类型是什么? - Pavel Minaev