補間された文字列をパラメータとしてメソッドに渡すことは可能ですか?

RredCat

補間文字列(C#6の新機能)を使い始めましたが、これは非常に便利で優雅です。しかし、私のニーズに応じて、文字列の形式をパラメータとしてメソッドに渡す必要があります。次のようなもの:

MyMethod(string format)

過去に、私はそれを次の方法で使用しました:

MyMethod("AAA{0:00}")

今私はこのコードを試しました:

MyMethod($"AAA{i:00}")

ただし、はiメソッド内で作成され、このコンテキストではスコープ外であるため、これは機能しません

補間された文字列をパラメータとしてメソッドに渡すためのトリックを使用することは可能ですか?

コビ

それはできません。それもあまり良い考えではありません。つまり、別のメソッドのローカル変数を使用しているということです。
これは、この機能の目的を無効にします-コンパイラで検証可能な文字列補間とローカル変数へのバインドを行います。

C#にはいくつかの良い選択肢があります。たとえば、Funcを使用します

public void MyMethod(Func<int,string> formatNumber)
{
    int i = 3;
    var formatted = formatNumber(i);
}

使用:

MyMethod(number => $"AAA{number:00}");

これは、現在のフォーマット文字列とさまざまな場所での使用法よりも優れています。

複数の変数がある場合、このアプローチは拡張できますが、それらをクラス(または構造体)にグループ化することを検討してfuncください。見栄えがよくなり、コードが読みやすくなります。このクラスは.ToString()、をオーバーライドすることもできます。これは便利な場合があります。

もう1つの簡単なオプションは、フォーマット:MyMethod("00")i.ToString(format)だけを渡すことですが、これはおそらく単純化された例でのみ機能します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パラメータとしてクラスに渡されたメソッドを変更することは可能ですか?

分類Dev

メソッドをパラメーターとして渡す-これは可能ですか?

分類Dev

パラメータとして渡されるプロパティの値を設定するメソッドを作成することは可能ですか?

分類Dev

単純な文字列パラメータをJSメソッドに渡すことはできますか?

分類Dev

asp.netのパラメーターとしてradiobuttonListをカスタムクラスのメソッドに渡すことは可能ですか?

分類Dev

メソッドにパラメーターとして渡されたFunc / Delegate / Expressionを評価するにはどうすればよいですか?

分類Dev

関数として渡された匿名メソッドのパラメーター値を取得するにはどうすればよいですか?

分類Dev

JS Lint、JS Hint、またはその他のツールを使用して、間違った数のパラメーターがメソッドに渡されるのを防ぐことはできますか?

分類Dev

メソッド内から、メソッドに渡された値を削除することは可能ですか?

分類Dev

mockitoを使用する; ラムダをパラメーターとして受け取り、ラムダによってキャプチャされた変数をアサートするメソッドをモックすることは可能ですか?

分類Dev

mockitoを使用する; ラムダをパラメーターとして受け取り、ラムダによってキャプチャされた変数をアサートするメソッドをモックすることは可能ですか?

分類Dev

メソッド(複数のメソッド)をパラメーターとして継承されたvoidメソッドまたはC#のデリゲートに渡すにはどうすればよいですか?

分類Dev

numpy配列が渡されていることを示すためにPythonメソッドパラメーターに注釈を付ける方法は?

分類Dev

オーバーロードされたメソッドをstd :: threadに渡すことは可能ですか?

分類Dev

メソッドにパラメーターとして渡されたときにデリゲートが機能しないのはなぜですか?

分類Dev

別のメソッドの引数として「$ 1」を使用し、返された文字列を.replaceAllのその場所に配置することは可能ですか?

分類Dev

どのように私は、getメソッドを使用して送信されたパラメータにアクセスすることができますか?

分類Dev

列をパラメーターとしてODERBY句に渡すことは可能ですか?

分類Dev

JQGrid:JQGrid列の値をパラメーターとしてcellurlで指定されたコントローラーメソッドに渡します

分類Dev

反映されたメソッドをパラメーターとして別の反映されたメソッドにデリゲートとして渡す

分類Dev

メソッドパラメータとして渡された配列を変更する

分類Dev

typedefされたブロックを、それ自体がメソッドのパラメーターであるブロックにパラメーターとして渡すにはどうすればよいですか?

分類Dev

メソッドをパラメーターとしてメソッドに渡す方法はありますか?

分類Dev

関数にパラメーターとして渡されたメソッドを実行する方法

分類Dev

あるメソッドをパラメータとして別のメソッドに渡すにはどうすればよいですか?

分類Dev

デコレータによってクラスで定義されているメソッドとプロパティを知ることは可能ですか?

分類Dev

静的に解決された型パラメーターを使用して、カレー引数を使用してクラスメソッドを呼び出すことは可能ですか?

分類Dev

javascript関数のパラメーターとして名前空間を渡すことは可能ですか?

分類Dev

セキュリティを強化するために、唯一のパラメータとして文字列を受け取るメソッドへのパスワードの引数として新しいString(文字を[])を渡すために、それは安全ですか?

Related 関連記事

  1. 1

    パラメータとしてクラスに渡されたメソッドを変更することは可能ですか?

  2. 2

    メソッドをパラメーターとして渡す-これは可能ですか?

  3. 3

    パラメータとして渡されるプロパティの値を設定するメソッドを作成することは可能ですか?

  4. 4

    単純な文字列パラメータをJSメソッドに渡すことはできますか?

  5. 5

    asp.netのパラメーターとしてradiobuttonListをカスタムクラスのメソッドに渡すことは可能ですか?

  6. 6

    メソッドにパラメーターとして渡されたFunc / Delegate / Expressionを評価するにはどうすればよいですか?

  7. 7

    関数として渡された匿名メソッドのパラメーター値を取得するにはどうすればよいですか?

  8. 8

    JS Lint、JS Hint、またはその他のツールを使用して、間違った数のパラメーターがメソッドに渡されるのを防ぐことはできますか?

  9. 9

    メソッド内から、メソッドに渡された値を削除することは可能ですか?

  10. 10

    mockitoを使用する; ラムダをパラメーターとして受け取り、ラムダによってキャプチャされた変数をアサートするメソッドをモックすることは可能ですか?

  11. 11

    mockitoを使用する; ラムダをパラメーターとして受け取り、ラムダによってキャプチャされた変数をアサートするメソッドをモックすることは可能ですか?

  12. 12

    メソッド(複数のメソッド)をパラメーターとして継承されたvoidメソッドまたはC#のデリゲートに渡すにはどうすればよいですか?

  13. 13

    numpy配列が渡されていることを示すためにPythonメソッドパラメーターに注釈を付ける方法は?

  14. 14

    オーバーロードされたメソッドをstd :: threadに渡すことは可能ですか?

  15. 15

    メソッドにパラメーターとして渡されたときにデリゲートが機能しないのはなぜですか?

  16. 16

    別のメソッドの引数として「$ 1」を使用し、返された文字列を.replaceAllのその場所に配置することは可能ですか?

  17. 17

    どのように私は、getメソッドを使用して送信されたパラメータにアクセスすることができますか?

  18. 18

    列をパラメーターとしてODERBY句に渡すことは可能ですか?

  19. 19

    JQGrid:JQGrid列の値をパラメーターとしてcellurlで指定されたコントローラーメソッドに渡します

  20. 20

    反映されたメソッドをパラメーターとして別の反映されたメソッドにデリゲートとして渡す

  21. 21

    メソッドパラメータとして渡された配列を変更する

  22. 22

    typedefされたブロックを、それ自体がメソッドのパラメーターであるブロックにパラメーターとして渡すにはどうすればよいですか?

  23. 23

    メソッドをパラメーターとしてメソッドに渡す方法はありますか?

  24. 24

    関数にパラメーターとして渡されたメソッドを実行する方法

  25. 25

    あるメソッドをパラメータとして別のメソッドに渡すにはどうすればよいですか?

  26. 26

    デコレータによってクラスで定義されているメソッドとプロパティを知ることは可能ですか?

  27. 27

    静的に解決された型パラメーターを使用して、カレー引数を使用してクラスメソッドを呼び出すことは可能ですか?

  28. 28

    javascript関数のパラメーターとして名前空間を渡すことは可能ですか?

  29. 29

    セキュリティを強化するために、唯一のパラメータとして文字列を受け取るメソッドへのパスワードの引数として新しいString(文字を[])を渡すために、それは安全ですか?

ホットタグ

アーカイブ