C#中out,ref,Parse的的参数以及使用方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yyp0304Devin/article/details/84136764

out的使用方法

1.如果方法的参数用out修饰了。那么这个参数必须在方法里进行赋值。

2.out修饰方法的参数了,那么在方法外面,可以被给这个参数赋值,但在方法里面必须给这个out修饰符的参数赋值

3.另外,参数加out,是把这个方法中的参数的值传到方法外面了。

如以下实例

 static void Main(string[] args)

        {

            int num1 ;

            int num2 = 80;



            int numSum = Show(out num1,num2);

            Console.WriteLine(num1);

            Console.WriteLine(num2 );

            Console.ReadKey();

        }

        public static int Show(out int number1,int number2)

        {

             number1 =90;



             return number1+ 10;

        }

out传多个返回值的方法

static void Main(string[] args)

        {

            int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            int max ;

            int min;

            int sum =ArraySum(nums,out max, out min);

        }

            public static int ArraySum(int []numbers,out int max,out int min)

        {

            max = int.MaxValue;

            min = int.MinValue;

            int sum = 0;

            for (int i = 0; i < numbers.Length; i++)

            {

                if (numbers[i] > max)

                {

                    max = numbers[i];

                }

                if (numbers[i] < min)

                {

                    min = numbers[i];               

             }

                sum += numbers[i];        

          }

            return sum;

        }

方法的out参数和ref参数

ref用的时候必须给要给这个变量赋值,和out有区别,out可以把方法里的值传出去,

ref可以把值传到方法里,有可以把值传到方法外

ref是有进有出,而out是只出不进。

out与ref区别:

同:

1、都能返回多个返回值。

2、若要使用 ref 和out参数,则方法定义和调用方法都必须显式使用 ref和out 关键字。在方法中对参数的设置和改变将会直接影响函数调用之处(参数的初始值)。

 

异:

1.ref指定的参数在函数调用时候必须初始化,不能为空的引用。而out指定的参数在函数调用时候可以不初始化;out指定的参数

2.在进入函数时会清空自己,必须在函数内部赋初值。而ref指定的参数不需要。

ref和out的功能

1、使用ref型参数时,传入的参数必须先被初始化,对out而言,必须在方法中对其完成初始化。

2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字,以满足匹配。

3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

4、ref传进去的参数在函数内部可以直接使用,而out不可。

5、系统对ref的限制是更少一些的。

6、若要使用 ref 参数,必须将参数作为 ref 参数显式传递到方法,ref 参数的值被传递到 ref 参数。

7、当希望方法返回多个值时,声明 out 方法非常有用;使用 out 参数的方法仍然可以返回一个值。

 

扩展资料:

out:标识一个参数值会受影响的参数,但在传入方法时,该参数无需先初始化。

ref:标识一个参数值可能会受影响的参数。

int.Parse(string类型变量名)

 

       该方式是将数字内容的字符串转为int类型,如果字符串内容为空或者null时,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常;如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常。

      使用该方法切忌的一点就是只能处理字符串内容,而且字符串内容只能在int类型可表示的范围之内。

 int.TryParse(string s, out int result)

该方式也是将数字内容的字符串转为int类型,但是该方式比int.Parse优越的地方,就是它不会出现异常。如果转换成功返回 true,如果转换失败返回 false。很明显,最后一个参数为输出值,如果转换失败,输出值为 0;如果转换成功,则输出相应的值。

TryParse方法实例

static void Main(string[] args)
        {
            Console.WriteLine("请输入一个数字");
            string strNumber = Console.ReadLine();
            int num;
            bool result = Program.MyTryParse(strNumber,out num);
            bool result1 = int.TryParse(strNumber, out num);
        }
            public static bool MyTryParse(string s,out int result)
        {
            result = 0;
            try
            {
                result = Convert.ToInt32(s);
                return true;

            }
            catch
            {
                return false;
            }

猜你喜欢

转载自blog.csdn.net/yyp0304Devin/article/details/84136764
今日推荐