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的区别。呵呵

  • 相关阅读:
    Catharanthus roseus(长春花碱)的生物合成
    论文好句积累
    C# OpenFileDialog用法
    JAVA配置环境变量的意义
    如何为织梦表单添加时间
    winform开发基础
    tomcat中jsp编译
    垂直居中——父元素高度确定的单行文本、父元素高度确定的多行文本
    水平居中——行内元素、定宽块、不定宽块
    批处理文件
  • 原文地址:https://www.cnblogs.com/volnet/p/554723.html
Copyright © 2011-2022 走看看