zoukankan      html  css  js  c++  java
  • ref传参时出错

    下面是一段正确的代码:

    //基类A
    public class A
    {
        public void SomeMethod(A a)
       {
      
       }
    }
    //派生类B
    public class B:A
    {
    
    }
    //在参数传递中,可以使用A类型的参数接收B类型的对象,代码如下:
    A a=new A();
    B b=new B();
    a.SomeMethod(b);
    //上面的代码编译完全正常,这说明可以讲派生类对象传递给其基类类型的参数
    //那么同样的道理是否可以将 System.Object类与string类型联合一起呢?
    public class TransferClass
    {
       public TransferClass()
       {
        //...
        }
       public void TransferMethod(ref object obj)
       {
    
       }
    }
    //下面是调用方法:
    TransferClass TransferObject =new TransferClass();
    string testStr="Hello!bitch!";
    TransferObject.TransferMethod(ref testStr);

    那么会发现编译出错!

    分析:ref修饰符使得TransferMethod方法中的代码能够改变该变量的值,即传入的参数值和传出的参数值可能是不同。

    解决:1)TransferMethod参数类型设置为string类型。

            2)string->object,再传参数

    说明:传递到ref参数的变量必须首先初始化,然后再传。这与out不同,out关键字修饰的参数在传递前无需显示初始化。

    ——当我们面对枯燥窘迫甚至是痛苦的生活时,只是缺少了提枪上阵去干他娘的勇气!
  • 相关阅读:
    Privacy Policy
    MINE
    IOS的浅拷贝和深拷贝
    Mine
    IOS8Preview-xCode_6
    IOS8Preview-Huge for developer and Massive for everyone else
    java-Filter
    Java-servlet
    Java-基本的程序设计结构
    银行应用系统安全性设计(3):密钥及其管理
  • 原文地址:https://www.cnblogs.com/vakeynb/p/ref.html
Copyright © 2011-2022 走看看