gpt4 book ai didi

c# - 实现具有 2 个返回值的方法的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-30 22:18:45 27 4
gpt4 key购买 nike

我经常遇到一些代码,我必须返回一个 bool 值来指示方法是否成功完成,以及一个带有错误消息的字符串以防出现问题。

我以两种方式实现了这一点。第一个包含一个响应类,所有类的所有方法都使用这个响应类进行通信。示例:

public class ReturnValue {
public bool Ok;
public string Msg;
public object SomeData;

public ReturnValue() {
this.Ok = true;
this.Msg = null;
}

public ReturnValue(string Msg) {
this.Ok = true;
this.Msg = Msg;
}

public ReturnValue(object SomeData) {
this.Ok = true;
this.SomeData = SomeData;
}

public ReturnValue(bool Ok, string Msg) {
this.Ok = Ok;
this.Msg = Msg;
}

public ReturnValue(bool Ok, string Msg, object SomeData) {
this.Ok = Ok;
this.Msg = Msg;
this.SomeData = SomeData;
}
}

public class Test {
public ReturnValue DoSomething() {
if (true) {
return new ReturnValue();
} else {
return new ReturnValue(false, "Something went wrong.");
}
}
}

第二种方法是有一个方法来存储消息以防出错,要查看消息只需调用此方法。示例:

public class Test {
public string ReturnValue { get; protected set; }

public bool DoSomething() {
ReturnValue = "";

if (true) {
return true;
} else {
ReturnValue = "Something went wrong.";
return false;
}
}
}

有正确的方法吗?

最佳答案

C# 不是依赖于返回值来了解某事是否成功,或者如果失败是什么错误,而是通常依赖于异常。如果您的程序运行正常,请不要抛出异常。如果它不起作用,则抛出异常并在抛出的异常中包含错误消息。

关于c# - 实现具有 2 个返回值的方法的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15931372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com