0

WCFで、2つの値を要求するときにユーザーがどのサービスを要求するかを決定し、それらの値を使用してさまざまな計算を実行できるようにする方法。

たとえば、value1とvalue 2を要求します。ユーザーは、これらの値を使用して、加算、減算、および乗算を実行することを選択できます。

どうすればそれを達成できますか?

        [OperationContract]
    int GetTwoValues(int value1, int value2);

public int addition(int value1, int value2){
return value1+value2;
}

public int subtraction(int value1, int value2){
return value1-value2;
}

次のようなロジックを実行する方法

if user.request="addition"{
do addition
}
else if user.request="subtraction"{
do subtraction
}

私はそれが私が書いたコードではないことを知っていますが、私が言っていることをあなたにある程度理解させようとしているだけです。どんな助けでも本当にありがたいです。

4

1 に答える 1

1

質問がよくわかりません

[OperationContract]
public int Subtraction(int value1, int value2)
{
    return value1 - value2;
}

[OperationContract]
public int Addition(int value1, int value2)
{
    return value1 + value2;
}

のように動作します

[OperationContract]
public int Calculation(int value1, int value2, string calcType)
{
    switch (calcType)
    {
        case "addition":
            return value1 + value2;
        case "subtraction":
            return value1 - value2;
    }
    //return default or throw exception
}

もちろん、どちらにも欠点がないわけではありませんが、どちらも基準を満たしています。

編集:あなたのコメントは、スイッチケースがユーザーにマップされない値を提供することを可能にするという明白なポイントを提起します。

はい、そうです。文字列は使用しません。それがあなたの例です。

それを回避するための可能な方法は?

  • ユーザー入力を検証します-無効なものを提供したときに通知します
  • デフォルトを使用
  • 例外をスローする
  • を使用しenumて、ユーザーに事前定義されたリストから選択するように強制します
  • 同様に最初の方法を使用します

おそらく、達成したいことについての質問でもっと説明する必要があると思います。

于 2013-02-07T01:43:33.537 に答える