拡張メソッドのサポート

.NET Framework 3.5 では、Windows Workflow Foundation ルール フレームワークで拡張メソッドを使用できるようになりました。拡張メソッドは、インスタンス メソッド構文を使用して呼び出すことのできる静的メソッドです。拡張メソッドでは、追加のメソッドを使用して既存の型および構築型を拡張できます。

拡張メソッドを宣言するには、メソッドの最初のパラメータに対する修飾子としてキーワード this を指定します。拡張メソッドは静的クラス内でのみ宣言できます。1 つの拡張メソッドを宣言する静的クラスの例を次に示します。

public static class Extensions
{ 
    public static int ToInt32(this string s) 
    { 
        return Int32.Parse(s); 
    } 
} 

次のコード例は、拡張メソッドを使用して既存の型に新しい機能を追加する方法を示しています。この場合、拡張メソッド ToInt32 が静的拡張クラスに対して定義されており、String クラスのインスタンスから呼び出されます。

string s = "123";
int i = s.ToInt32();

WF ルール フレームワークでは、拡張メソッドの検証がコンパイル時に実行されます。 ソリューションの静的クラスで拡張メソッドが定義されていない場合は、ソリューションに示されているすべての参照アセンブリが検証コントロールによって検索され、拡張メソッド呼び出しが解決されます。

Noteメモ :

この機能に依存するコードを .NET Framework 3.0 で使用すると、呼び出したメソッドがそのクラスで定義されていないため、検証エラーが発生します。

拡張メソッドの詳細については、『C# バージョン 3.0 の仕様』を参照してください。

関連項目

その他の技術情報

.NET Framework 3.5 でのルールの変更点

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.