-3
A
回答
5
要從控制檯應用程序讀取輸入的最簡單方法是Console.ReadLine
。有可能的替代方案,但它們更復雜,並預留給特殊情況:請參閱Console.Read或Console.ReadKey。
什麼是多麼重要的是轉換不應該使用Convert.ToInt32
或Int32.Parse
但Int32.TryParse
int k = 0;
string input = Console.ReadLine();
if(Int32.TryParse(input, out k))
Console.WriteLine("You have typed a valid integer: " + k);
else
Console.WriteLine("This: " + input + " is not a valid integer");
之所以用Int32.TryParse
謊言在事實,你可以檢查完成的整數倍轉換爲整數是可能的或不可以。其他方法反而會引發一個異常,您應該處理複雜的代碼流。
1
可以使用int.TryParse
見例如
var item = Console.ReadLine();
int input;
if (int.TryParse(item, out input))
{
// here you got item as int in input variable.
// do your stuff.
Console.WriteLine("OK");
}
else
Console.WriteLine("Entered value is invalid");
Console.ReadKey();
1
這是一種替代和最佳method,你可以遵循:
int k;
if (int.TryParse(Console.ReadLine(), out k))
{
//Do your stuff here
}
else
{
Console.WriteLine("Invalid input");
}
3
您可以創建自己的實現了控制檯和使用它隨處可見:
public static class MyConsole
{
public static int ReadInt()
{
int k = 0;
string val = Console.ReadLine();
if (Int32.TryParse(val, out k))
Console.WriteLine("You have typed a valid integer: " + k);
else
Console.WriteLine("This: " + val + " is not a valid integer");
return k;
}
public static double ReadDouble()
{
double k = 0;
string val = Console.ReadLine();
if (Double.TryParse(val, out k))
Console.WriteLine("You have typed a valid double: " + k);
else
Console.WriteLine("This: " + val + " is not a valid double");
return k;
}
public static bool ReadBool()
{
bool k = false;
string val = Console.ReadLine();
if (Boolean.TryParse(val, out k))
Console.WriteLine("You have typed a valid bool: " + k);
else
Console.WriteLine("This: " + val + " is not a valid bool");
return k;
}
}
class Program
{
static void Main(string[] args)
{
int s = MyConsole.ReadInt();
}
}
1
有3種類型的整數:
1)Short Integer:16位數字(-32768到32767)。在c#中,您可以聲明一個短整型變量,如short
或Int16
。
2.)"Normal" Integer:32位數(-2147483648至2147483647)。用關鍵字int
或Int32
聲明一個整數。
3.)Long Integer:64位數字(-9223372036854775808至9223372036854775807)。用long
或Int64
聲明一個長整數。
區別在於您可以使用的數字範圍。 您可以使用Convert.To
,Parse
或TryParse
將其轉換。
相關問題
- 1. 在Asp.net中Forloop的替代方案c#
- 2. 在asp.net c中的LifeRay替代方案#
- 3. 在Matlab中從工作區讀取的eval替代方案
- 4. C++中的BufferedImage的替代方案
- 5. C#ReadProcessMemory替代方案
- 6. C++ 11 sscanf替代方案
- 7. 在Python中整數列表的替代方案
- 8. 什麼是C++方案的標記數據的替代方案
- 9. C++中的NSSortDescriptor替代方案
- 10. C++中的扭曲替代方案
- 11. C++中mktime的替代方案
- 12. c中的gethostbyname()替代方案
- 13. 發佈提取數據替代方案()
- 14. 每行讀取整數C++錯誤需要解決方案
- 15. 替代開關案例讀取XML
- 16. 在方案中讀取宏
- 17. 解決方案的C++替代算法
- 18. pre-C++的std :: bind替代方案11
- 19. C++:模板的替代解決方案
- 20. 用於C++的ORG替代方案
- 21. C#的Socket.IO和Express替代方案?
- 22. 在ANSI中讀取fread的整數C
- 23. ExpressionEvaluationUtils在Spring 4中的替代方案
- 24. 在oracle中REGEXP_LIKE的替代方案
- 25. Curl在CentOS中的替代方案
- 26. 原型在Javascript中的替代方案
- 27. CCCallBlockN在Cocos2d 3.0中的替代方案
- 28. com +在.net中的替代方案?
- 29. CCMenuItemSprite在Cocos2d v3中的替代方案
- 30. 在ISO C89中strcpy的替代方案
不這樣做你想要什麼? – HimBromBeere
實際上你應該使用'Convert.ToInt32'。還有'int.Parse'。 –
是的,但我想要的是有任何其他方法 –