定义和调用方法

本文关键字:方法 调用 定义 | 更新日期: 2023-09-27 18:00:27

我是OOP的新手。希望有人能澄清我的疑虑。

如果我想调用类似的方法

int number = numberMethod();

方法定义应该是什么??

public void numberMethod(out int num)
{
    num = 3;
}

public int numberMethod()
{
    int num = 3;
    return num;
}

或者两者的定义相同??

定义和调用方法

不,它们不一样。你必须使用第二种形式,而不是第一种。

如果你试图使用方法的返回值,这就是你在这里所做的:

int number = numberMethod();

那么该方法必须具有一个适当的返回类型——一个可以隐式转换为CCD_ 1的返回类型。不能这样调用void方法,C#也不会将"具有out参数和void返回类型的方法"隐式地视为"具有与out参数类型匹配的返回类型的方式"。

在具有void返回类型的方法中包含out参数是一个非常好的主意。(事实上,使用out参数IMO相对来说不是一个好主意。它们通常表明单个方法试图做得太多。)

第二个,

因为您调用的方法如下,这意味着您调用的方法会重新运行值

int number = numberMethod();

方法

public int numberMethod()
{
    int num = 3;
    return num;
}

如果你想使用第一个,你需要称之为

int number ;
numberMethod(out number);

因为您有void返回值,并且在参数中指定out

方法

public void numberMethod(out int num)
{
    num = 3;
}

不,它们不是同一种方法,从消息的签名中可以清楚地看出

public int numberMethod()  // return as integer
{
    int num = 3;
    return num;
}

是用于满足您需求的正确方法。

第二种方法

public void numberMethod(out int num)
{
    num = 3;
}

也可以使用,但You need to change the way it is invoked

它可以像一样使用

int num;
numberMethod(out num);

两种方法最终将具有相同的效果,即int0将具有值3


只有当需要从method/function返回多个返回值时,方法中的out参数才是首选参数。