11

私はReSharperでいくつかのc#コードのリファクタリングに取り組んでいました。私が遭遇したことの1つは、私がよく知らないac#演算子です。

私のコードでは、これがありました

Mathf.FloorToInt(NumRows/2)

ここで、NumRowsは整数です。ReSharperは私がそれをに変更する必要があることを示唆しています

Mathf.FloorToInt(f: NumRows/2)

これは、NumRowsをfloatとしてキャストするように指示するフラグであると確信していますが、オンラインf:のドキュメントが見つかりません。f:誰かが正確に何をしているのかを詳しく説明f:したり、それについてのMSDNページにリンクしたりできますか?

(私はf:が何をするかについてはよく知っていますが、インターネットでコロンを検索するのは難しいので、使用する前にそれが何をするのか知りたいです)

更新1:何をしようとしているかに関係なく、f-コロン構文に興味があります

更新2:実際にはVisual Studioが、ReSharperではなく引数名「f」を追加できることを示唆していたことが判明しましたが、それでも正解は変わりません。

4

3 に答える 3

20

これは名前付きパラメーターです。の定義を見てください。Mathf.FloorToIntこれには、という名前のパラメータがありますf

Resharperは、この場合、名前付きパラメーターを使用することでコードを読みやすくすることができることを示しています。

于 2012-07-23T17:14:20.947 に答える
9

C#4.0では、メソッド呼び出しでパラメーター式を切り替えることができます。

パラメータが1つしかない場合は、ほとんど役に立ちません。パラメータが1つしかない場合は、式が何を表しているかは間違いありません。ただし、複数のパラメーターを使用すると、この機能はさらに便利になります。パラメーター名とその値を表す式を組み合わせて、パラメーターを任意の順序で渡すことができます。プログラムの読者は、どの式がどのパラメーターを表すかを理解するために、メソッドシグネチャを参照する必要はありません。

private static void MyMethod(int a, int b, int c) {
    Console.WriteLine("{0} {1} {2}", a, b, c);
}

public static void Main(string[] args) {
    MyMethod(1, 2, 3);
    MyMethod(c:1, a:2, b:3);
}

このプリント

1 2 3
2 3 1
于 2012-07-23T17:15:53.940 に答える
3

名前付きパラメータの構文を見ています。

于 2012-07-23T17:15:11.130 に答える