温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

c#函数中ref/out如何重载

发布时间:2020-06-14 20:22:18 来源:网络 阅读:254 作者:2shoubentian 栏目:编程语言

•                    ref / out 在大部分情况下是标识的一部分!
       你可以重载一个ref型参数和一个普通参数
       你可以重载一个out型参数和一个普通参数
       你不可以重载一个ref型参数和一个out型参数
sealed class Overloading
{
    void Allowed(    int parameter)
    { ... }
    void Allowed(ref int parameter)
    { ... }
   //正确,重载一个ref型参数和一个普通参数
 
    void AlsoAllowed(    int parameter)
    { ... }
    void AlsoAllowed(out int parameter)
{ ... }
//正确,重载一个out型参数和一个普通参数

    void NotAllowed(ref int parameter)
    { ... }
    void NotAllowed(out int parameter)
{ ... }
//错误,不能重载一个ref型参数和一个out型参数
}
ref和out修饰符可以是一个函数的标识。但是你不能同时重载ref和out型参数。ref和out修饰符在某种意义上是“安全的“,因为只有ref型实参才能传递给ref型函数参数,只有out型实参才能传递给out型函数参数。但是,当调用函数的时候,你会非常容易忘记ref和out修饰符,所以最好不要重载ref和out型参数。例如:
  sealed class Overloading
  {
   public static void Example(int parameter)
   { ... }
   public static void Example(ref int parameter)
   { ... }
   static void Main()
   {
    int argument = 42;
    Example(argument);//在这儿非常容易忘记ref修饰符
   }
  }
 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI