zoukankan      html  css  js  c++  java
  • DEMO[C#]refKeyword and outKeyword 关于ref与out关键字区别的DEMO

    相关ref与out的语法规则请查询MSDN
    ref : ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.chs/dv_csref/html/b8a5e59c-907d-4065-b41d-95bf4273c0bd.htm
    out : ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.chs/dv_csref/html/7e911a0c-3f98-4536-87be-d539b7536ca8.htm
    以上两个链接是适合Express版,其他版本未测试,应该可以通用。
    两个DEMO基本上一样,但是在区别部分已经使用注释以示区别了。
    DEMO1(ref)
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace CA_refKeyword
    {
        
    class Program
        
    {
            
    static void Sum(int num1, ref int num2)
            
    {
                
    //num2 = 1; //此句可不写!!!!!!!!!!与out不同之处!!!!!!!!!!!!!!!!
                Console.WriteLine("In Sum() : num1={0},num2={1} -------{0}+{1}={2}", num1, num2, num1 + num2);
                num2 
    = 444;
            }

            
    static void Main(string[] args)
            
    {
                
    int num1 = 3, num2 = 12;
                
    //int num1 = 3, num2; //ERROR!
                Console.WriteLine("In Main() before Sum(): num1={0},num2={1}", num1, num2);
                Sum(num1, 
    ref num2);
                Console.WriteLine(
    "In Main() after Sum(): num1={0},num2={1}", num1, num2);
                Console.ReadKey();
            }

        }

    }


    程序输出:

    In Main() before Sum(): num1=3,num2=12
    In Sum() : num1=3,num2=12 -------3+12=15
    In Main() after Sum(): num1=3,num2=444

    DEMO2(out)
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace CA_outKeyword
    {
        
    class Program
        
    {
            
    static void Sum(int num1, out int num2)
            
    {
                num2 
    = 1;   //必须重新赋值
                Console.WriteLine("In Sum() : num1={0},num2={1} -------{0}+{1}={2}", num1, num2, num1 + num2);
                num2 
    = 444;
            }

            
    static void Main(string[] args)
            
    {
                
    int num1 = 3, num2 = 12;
                Console.WriteLine(
    "In Main() before Sum(): num1={0},num2={1}", num1, num2);
                Sum(num1, 
    out num2);
                Console.WriteLine(
    "In Main() after Sum(): num1={0},num2={1}", num1, num2);
                Console.ReadKey();
            }

        }

    }


    程序输出:

    In Main() before Sum(): num1=3,num2=12
    In Sum() : num1=3,num2=1 -------3+1=4
    In Main() after Sum(): num1=3,num2=444

    希望两个DEMO能够让大家理解ref与out的区别。呵呵

  • 相关阅读:
    【程序员面试宝典】第五章 程序设计基本概念
    win7打开或关闭windows功能 提示“出现错误,并非所有的功能被更改”,管理员权限惹的祸
    堆排序
    目态与管态的概念
    循环不变式的概念
    getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析
    java算法 -- 冒泡排序
    Java算法 -- 二分查找
    Sql知识点总结
    java实现 链表反转
  • 原文地址:https://www.cnblogs.com/volnet/p/554723.html
Copyright © 2011-2022 走看看