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

  • 相关阅读:
    Console.WriteLine输出字符格式化
    GridView动态生成列问题
    日历控件,可运行在XHTML1.0下
    GridView內容導出Excel時異常:必须置於有 runat=server 的表单标记之中
    圆弧分割
    矩阵变换
    使用group by 来统计的小作业
    group by 后使用 rollup 子句总结
    mysql字符串拼接,存储过程,(来自网上看到)
    【深入理解Linux内核】《第二章 内存寻址》笔记 (2014-06-28 12:38)
  • 原文地址:https://www.cnblogs.com/banma/p/11214393.html
Copyright © 2011-2022 走看看