C#在单独的输出参数中提供额外的输出是不好的做法吗?

And*_*rew -1 c# output

我有一个带有以下签名的方法:

bool DoSomething();
Run Code Online (Sandbox Code Playgroud)

我想把它改成这个:

bool DoSomething(IList<int> newIDs);
Run Code Online (Sandbox Code Playgroud)

布尔值和ID列表彼此不相关.新方法包含一个包含新ID列表的额外输出.这是不好的做法吗?在这种情况下返回多个值的正确方法是什么?

Luc*_*rin 5

您还可以"包装"对象内的所有返回值:

public class Payload
{
    public List<int> NewIDs { get; set; }
    public bool Status { get; set; }
}

//Use Payload class

public Payload DoSomething(...){...}
Run Code Online (Sandbox Code Playgroud)

我认为在决定特定模式之前理解返回值的语义是很重要的.如果您使用详细信息编辑问题,我也会提供更多见解.

干杯