です:タイトルのために述べたように...エラーCS1109 t拡張メソッドは、トップレベルの静的クラスで定義する必要があります。パターンは私が文字列オブジェクトを拡張し、ネストされたクラスの拡張部分を持っている、しかし、直接このようにそれをやってしたいと思い、ネストしたクラス
public static class StringExtensions
{
public static class Patterns
{
public static string NumbersOnly(this string s)
{
return new String(s.Where(Char.IsDigit).ToArray());
}
}
}
するとエラーになりますこの投稿の私はそれを呼び出すとき、それは次のように呼び出すことができるように
がどのように違っこれを書くことができます:
string s = "abcd1234";
s = s.Patterns.NumbersOnly();
私はエラーが離れて行く作るためにStringExtensions
の直接の子としてNumbersOnly
移動することができます知っています、しかし私の意図は、メソッドをたくさん持つカテゴリにメソッドを編成することです。などPatternNumbersOnly
またはNumbersOnly
注:この質問は異なり、この例では、NumbersOnly
はただ一つ、約40のパターンは、私がそこに持っていき、私はのようなメソッドを持つオブジェクトの根の乱雑にしたくないと一致するのですなぜこの問題が存在するのか尋ねていないので、このエラーの理由が私を否定している機能や同様の機能を持つことができるように回避策を探しています。this one
これはで動作します迅速。 C#コンパイラチームは、それを調べて、実際にそれがコストに大きな価値を追加しないと判断したので、実装しません(近い将来に少なくとも) – Mafii
@Mafii - あなたはソースを提供できますか?あなたの声明を検証してください。 –
http://stackoverflow.com/a/619047/5962841 – Mafii