2

私はこのようなコンストラクターの署名を持っています

public NavigationLink(Func<String> getName, 
                      Func<UrlHelper, String> getURL, 
                      Func<bool> isVisible, 
                      IEnumerable<NavigationLink> subItems)

そのコンストラクター内で、含まれているクラスのプロパティに getName を割り当てています

GetName = getName

文字列呼び出し String.CapitalizeWords(); で大文字と小文字を区別する文字列拡張機能があります。

その拡張機能を Func に適用するにはどうすればよいですか?

ありがとう

4

4 に答える 4

3

あなたができる

GetName = () => getName().CapitalizeWords();

しかし、なぜ String 自体ではなく String を返す、パラメーターのない関数が必要なのでしょうか?

于 2010-03-10T16:14:19.913 に答える
1

これはGetNameプロパティの署名ですか?

string GetName{get;set;}

もしそうなら、私はあなたがする必要があるのは

GetName=getName().CapitalizeWords();

それ以外の場合、署名が次のような場合:

Func<string> GetName{get;set;}

あなたはおそらくする必要があるでしょう

GetName=getName;
string caps = GetName().CapitalizeWords();

私はあなたの質問を理解したと思います:P

于 2010-03-10T16:26:35.087 に答える
0

getName 自体ではなく、getName を実行した結果が表示されます。GetName は、文字列を返す関数へのデリゲートです。それ自体は文字列ではありません。できるはずですString CapName = GetName().CapitalizeWords()

于 2010-03-10T16:14:42.697 に答える
0
GetName = () => getName().CapitalizeWords();
于 2010-03-10T16:14:45.937 に答える