に私は「これは」のためにここに立ってどのような機能この修飾子は、関数の引数のC#
public static string TestFunc(this DateTime dt)
{
}
を以下のがありますか?
に私は「これは」のためにここに立ってどのような機能この修飾子は、関数の引数のC#
public static string TestFunc(this DateTime dt)
{
}
を以下のがありますか?
それは、このメソッド拡張メソッドになります。それは構造体を拡張するDateTime
です。
あなたが拡張メソッドは、この
public static string TestFunc(this DateTime dt, string format)
{
}
のように宣言された場合、コンパイラは
string s = TestFunc(dt);
に内部的に最後の行を書き換え、この
DateTime dt = DateTime.Now;
string s = dt.TestFunc();
のようにそれを呼び出すことができますあなたはそれを呼び出すことができますこの
string s = dt.TestFunc("dd.MM.YY");
のような拡張メソッドは静的クラスで宣言する必要があります。宣言するクラスの名前空間が利用可能な場合(同じ名前空間にあるか、またはusing
で名前空間をインポートしたため)、他のクラスでも使用できます。 System.Linq
をインポートすると、IEnumerable<T>
を実装するあらゆる種類のコレクションを拡張する多くの拡張メソッド(インテリセンス)が表示されます。メンバーリストの拡張メソッドの青い矢印が表示されます。
この文脈では、extension methodを定義するために使用されます。
これは、すべてDateTime
タイプを拡張するために使用されています。
拡張メソッドを定義するための構文です。これは、通常の静的関数として呼び出すことができます。
DateTime dt = DateTime.Today;
string s = ClassName.TestFunc(dt);
または日時の「拡張子」のように:
DateTime dt = DateTime.Today;
string s = dt.TestFunc();
あなたはDateTime
タイプのextension methodを見つけました。
だから今、既存のDateTime
コードを変更せずに、あなたは、次の操作を行うことができます:[?C#で、このパラメータ修飾子]の
DateTime MyDT = DateTime.Now;
string MyStr = MyDT.TestFunc();
// continue using MyStr as you wish...
が重複する可能性を(http://stackoverflow.com/questions/ 4700016/this-parameter-modifier-in-c) –
もしあなたがそれを訂正しようとするならば、少なくとも文法も訂正すべきです...これは "何が"この文脈の中にあるのでしょうか? 「これは何を」ここに立っているのか? –