2011-01-22 4 views
2

私が持っている:静的クラス自体に拡張メソッドを含めることをお勧めしますか?

public static class DataManager 
{ 
    private static Dictionary<string, DataTable> dataTables; 

    // extension method 
    public static DataTable GetTable (this string TableName) 
    { 
     return dataTables[ TableName ]; 
    } 

} 

私は辞書のコレクションを公開したくなかったし、これは私がこのタスクを達成するために考えられた方法です。私の呼び出しの方法で:

これは別の方法がありますか、これを行うことはできますか?それともこれは受け入れられますか?私はあなたの方法はは(拡張メソッドを述べるだろうか)stringで動作していない、ので、これは良いアイデアだと思いません

答えて

7

、それはDataManager上で動作します。この場合は静的メソッドを使用してください。

+0

私は「仕事」という言葉はイタリック体で、「ない」ではないと思う:)おそらく、ここでは「操作する」が良い選択だろう。 – leppie

+1

厳密に言えば、書かれているように*文字列( '' foo ".GetTable()')で動作しますが、それはむしろ直感的ではない(と厄介な)呼び出し規約のようです。 –

+1

@leppie、アダム:ありがとう、編集 – ulrichb

関連する問題