c#函数中ref/out如何重载-创新互联

•                   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型参数和一个普通参数

创新互联是一家以网络技术公司,为中小企业提供网站维护、成都网站建设、做网站、网站备案、服务器租用、域名与空间、软件开发、成都微信小程序等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站服务热线:18980820575

   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修饰符
   }
  }

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:c#函数中ref/out如何重载-创新互联
文章路径:http://myzitong.com/article/ehjec.html