• 函数的ref 和out 参数


    Ref参数:

    class Program

        {

            static void Main(string[] args)

            {

                int a = 10;

                Swap(a);//正常的调用是值传递,相当于把a的值复制到Swap中

                Console.WriteLine("在调用Swap后a={0}",a);//所以调用完Swap后,a的值仍然是10

                Change(ref a);//ref是引用,是调用后直接把a的值给改变了。

                Console.WriteLine("在调用Change后a={0}", a);//所以调用完Change后,a的值变成了15,和Change里面的a一样了

                Console.ReadKey();

            }

            static void Swap(int a)

            {

                a  = a  + 5;

                Console.WriteLine(a );//在Swap中a的值增加了5,变成了15

            }

            static void Change(ref int a)

            {

                a = a + 5;

                Console.WriteLine(a);

            }

        }

     

    Out参数:

    class Program

        {

            static void Main(string[] args)

            {

                int a;//当要用到out参数的时候,定义的变量不能赋值,要留给out赋值

                Swap(out a);//调用Swap

                Console.WriteLine(a);

                Console.ReadKey();

            }

            static void Swap(out int a)//Swap中参数out 的作用是给a赋初值

            {

                a = 10;

                Console.WriteLine(a );//在Swap中a的值增加了5,变成了15

            }

        }

     

    class Program

        {

            static void Main(string[] args)

            {

                string s = Console.ReadLine();

                int i;

                if (int.TryParse(s, out i))//调用int的TryParse属性,如果输入的s能转换为int类型,则为true,否则为false

                {

                   i=i+10;

                    Console.WriteLine ("i={0}",i );

                }

                else

                {

                    Console.WriteLine ("输入格式错误");

                }

                Console.ReadKey();

            }

        }

    PS:ref和out的区别:ref是对已经赋值的变量对其的值进行改变,而out是对未赋值的变量进行初始化

  • 相关阅读:
    顺序程序设计03 零基础入门学习C语言09
    数据类型,运算符和表达式05 零基础入门学习C语言06
    顺序程序设计01 零基础入门学习C语言07
    顺序程序设计01 零基础入门学习C语言07
    顺序程序设计02 零基础入门学习C语言08
    数据类型,运算符和表达式05 零基础入门学习C语言06
    分支程序设计01 零基础入门学习C语言10
    分支程序设计01 零基础入门学习C语言10
    VC++ 实现线程注入
    ISV 客户博客系列:Minitab通过Windows Azure推出云端Qeystone
  • 原文地址:https://www.cnblogs.com/ruishuang208/p/3072628.html
Copyright © 2020-2023  润新知