zoukankan      html  css  js  c++  java
  • java 和 c#返回值方法

    java 和 c#都是应用很广泛的语言,也互有优劣。

    这两者都是面向对象的语言,在一个方法中如果类型不是void那么是需要return一个返回值的。

    但是如果想要返回多个值该怎么办?

    排除直接返回一个对象(User user = new User)的情况,先拿java来说

    1、将返回值拼接成一个字符串,然后再解析字符串;

    2、new一个Map对象,以键值对的形式return

    当然还有返回List、 JSON等方法,不过总的来说都算是只有一个返回值。

    如果我一个方法已经写好啦,返回的是Boolean类型,后来又想再返回一个String字符串,上面的方法固然可行,不过总感觉有点拐弯抹角

    而在 c# 中,就有这么一种直来直去的方法 ref 和 out 关键字

    代码如下:

    class Program
        {
            static void Main(string[] args)
            {
               int a=3;
               int b=2;
               int c=0;
               int reduce = Change(a,b,ref c);
               Write(reduce); //输出的是 1 
               Write(c); //输出的是 5 
          }  
            static int Change(int a,int b,ref int c)
            {
                c = a + b;
                return a - b;
            }
        } 

    如上,最终输出的结果是:1 和 5 ,这样就实现了返回多个值的功能

    out关键字用法和ref一样

    class Program
        {
            static void Main(string[] args)
            {
               int a=3;
               int b=2;
               int reduce = Change(a,b,out c);
               Write(reduce); //输出的是 1 
               Write(c); //输出的是 5 
          }  
            static int Change(int a,int b,out int c)
            {
                c = a + b;
                return a - b;
            }
        } 

    需要注意的是: 在方法定义和调用方法时都必须显式的使用  ref、out 关键字

    ref和out最主要的区别是:

    ref将参数的参数值和引用都传入方法中,所以ref的参数的初始化必须在方法外部,进行,也就是ref的参数必须有初始化值,否则程序会报错

    out不会将参数的参数值传入方法中,只会将参数的引用传入方法中,所以参数的初始化工作必须在其对用方法中进行,否则程序会报错

  • 相关阅读:
    【收藏】UICrawler
    【转】 持续集成实战
    【工具引入】uiautomatorviewer 查找元素后自动生成代码
    【转】区块链测试简介
    【收藏】UI自动化测试基本规则与设计模式
    【转】自动化测试框架: pytest&allure ,提高自动化健壮性和稳定性
    【转】iOS 自动化性能采集
    ATX 安卓设备 WiFi 统一管理以及设备自动化测试
    【转】 mysql 数据优化
    【转】chrome devtools protocol——Web 性能自动化
  • 原文地址:https://www.cnblogs.com/banma/p/11214393.html
Copyright © 2011-2022 走看看