2

C#私はあなたが次のようなことができることを知っています:

int number = true ? 1 : 0;

Booleanこれは、が true であるかどうかに応じて、左側または右側を返します。

しかし、同じことを行う方法はありますが、代わりに値を返す代わりに関数を実行しますか? このようなもの:

これは機能しません (複数の構文エラーが発生します)

WPS.EDIT_MODE ? ExecuteEditMode() : ExecutePublicMode();

ありがとう。

4

2 に答える 2

9

条件演算子は値を返す必要があります。関数が両方とも意味のある値を返さないと仮定すると、ifステートメントを使用してそれを行う必要があります。

if(someCondition)
    doA();
else
    doB();

技術的には、本当に必要な場合は匿名関数を使用してこれを行うことができます。

int number = someCondition ?
    new Func<int>(() => { doA(); return 0; })() :
    new Func<int>(() => { doB(); return 1; })();

しかし、それは提案されていません。その場合は、を使用するif/else方が簡単で読みやすいです。

于 2013-07-08T14:17:47.593 に答える