2

メソッドが正常に終了したかどうかを示すブール値と、問題が発生した場合のエラー メッセージを含む文字列を返さなければならないコードによく遭遇します。

私はこれを2つの方法で実装しました。1 つ目は応答のクラスで構成され、すべてのクラスのすべてのメソッドがこの応答クラスを使用して通信します。例:

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.");
        }
    }
}

2 番目の方法は、エラーの場合にメッセージを格納するメソッドを用意し、このメソッドを呼び出すだけでメッセージを表示することです。例:

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

    public bool DoSomething() {
        ReturnValue = "";

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

これを行う正しい方法はありますか?

4

2 に答える 2