2010-07-10 4 views
1

... p. Ex. String.Split (Delim As String).String.Split dans .Net FW - pourquoi pas de surcharge qui prend une seule chaîne?

+0

Je ne vous attendez pas à une réponse définitive, bien sûr - c'est juste une de ces choses qui semble un peu étrange - c'est trop facile d'essayer par exemple mystring.Split ("") seulement pour être grondé par le compilateur. –

+1

Il a une surcharge qui prend un seul caractère. –

+0

Non selon les docs http://msdn.microsoft.com/en-us/library/system.string.split.aspx - est-ce non documenté? –

Répondre

5

Oui, c'est étrange, je l'ai maudit moi-même plusieurs fois. Également étrange est que les surcharges Split() qui prennent une chaîne n'étaient pas disponibles dans .NET 1.x. Eh bien, plus peut-être. Peut-être que certains "pas trop de surcharges!" paralysie ici. Les arguments StringSplitOptions et Count peuvent en générer un nombre combinatoire.

Fix avec une méthode d'extension:

public static class Extensions { 
    public static string[] Split(this string s, string separator) { 
     return s.Split(new string[] { separator }, StringSplitOptions.None); 
    } 
} 

Et ajouter ceux dont vous avez besoin si vous voulez aussi couvrir StringSplitOptions et le comte :)

+1

Trop de surcharges me paraissent raisonnables, merci Hans - la méthode d'extension 'workaround' est une bonne solution - au moins jusqu'à la mise à jour de .Net 7.0 qui supporte 1 437 surcharges différentes de String.Split. –

Questions connexes