Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用户输入初始化数组示例和隐式转换_C#_Implicit Conversion - Fatal编程技术网

C# 用户输入初始化数组示例和隐式转换

C# 用户输入初始化数组示例和隐式转换,c#,implicit-conversion,C#,Implicit Conversion,是否有方法强制转换未处理的异常行,以便“输入字符串”采用“正确的”int格式?我不记得这种类型的不兼容隐式转换的解决方法……first for循环中语句处未处理的异常 public class ArrayTest { public static void Main() { // initialize array int[] myArray; Console.WriteLine("Ent

是否有方法强制转换未处理的异常行,以便“输入字符串”采用“正确的”int格式?我不记得这种类型的不兼容隐式转换的解决方法……first for循环中语句处未处理的异常

public class ArrayTest
    {
        public static void Main()
        {
            // initialize array
            int[] myArray;
            Console.WriteLine("Enter size of an Array");
            int arrayVariable = Convert.ToInt32(Console.ReadLine());
            myArray = new int[arrayVariable];
            Console.WriteLine("Element at index {0}", arrayVariable);
            Console.WriteLine("Enter elements of Array");
            for (int i = 0; i < arrayVariable; i++)
            {
                myArray[i] = Convert.ToInt32(Console.ReadLine());
            }
            for (int i = 0; i < arrayVariable; i++)// Display Array Elements
            {
                Console.WriteLine("Element at index {0} {1}: ", i, myArray[i]);
            }
        }
    }
公共类数组测试
{
公共静态void Main()
{
//初始化数组
int[]myArray;
WriteLine(“输入数组的大小”);
int arrayVariable=Convert.ToInt32(Console.ReadLine());
myArray=新整数[arrayVariable];
WriteLine(“索引{0}处的元素”,arrayVariable);
Console.WriteLine(“输入数组元素”);
for(int i=0;i
Int32.TryParse(string,out int)方法将指定的32位带符号整数的字符串表示形式转换为out变量,如果成功解析,则返回true,否则返回false。此方法在C#2.0及更高版本中可用。当s是空引用时,它将返回0而不是抛出ArgumentNullException。如果s不是整数值,则out变量将具有0而不是FormatException。当s表示小于MinValue或大于MaxValue的数字时,out变量将具有0而不是OverflowException

 success = Int32.TryParse(s1, out result); //-- success => true; result => 1234 
 success = Int32.TryParse(s2, out result); //-- success => false; result => 0 
 success = Int32.TryParse(s3, out result); //-- success => false; result => 0 
 success = Int32.TryParse(s4, out result); //-- success => false; result => 0 

Convert.ToInt32优于Int32.Parse,因为它返回0而不是异常。但同样,根据要求,这是可以使用的。TryParse将是最好的,因为它总是自己处理异常。

TryParse
是验证inut类型的选择之一

public class ArrayTest
{
    public static void Main()
    {
        // initialize array
        int[] myArray;
        Console.WriteLine("Enter size of an Array");
        int arrayVariable = Convert.ToInt32(Console.ReadLine());
        myArray = new int[arrayVariable];
        Console.WriteLine("Element at index {0}", arrayVariable);
        Console.WriteLine("Enter elements of Array");
        for (int i = 0; i < arrayVariable; i++)
        {
            string input = Console.ReadLine(); 
            int result;
            if(int.TryParse(input, out result))
            {
                myArray[i] = result;
            }  
            else 
            {
                 i--;
                 Console.WriteLine("Invalid input format");  
            } 
        }
        for (int i = 0; i < arrayVariable; i++)// Display Array Elements
        {
            Console.WriteLine("Element at index {0} {1}: ", i, myArray[i]);
        }
    }
}
公共类数组测试
{
公共静态void Main()
{
//初始化数组
int[]myArray;
WriteLine(“输入数组的大小”);
int arrayVariable=Convert.ToInt32(Console.ReadLine());
myArray=新整数[arrayVariable];
WriteLine(“索引{0}处的元素”,arrayVariable);
Console.WriteLine(“输入数组元素”);
for(int i=0;i

不清楚你在问什么。哪个是“未处理的异常行”?你说的是什么类型的“cast”?我想你指的是
Int32.TryParse
,而不是
Int32.Parse
。此外,它“在C#2.0中不可用”;它在.NET2.0中可用,这是不一样的。@johnsa理解是的,我的badOk,但当它与C无关时,你仍然说“C#2.0”。