2012-06-13 10 views
15

System.String.Split() restituisce mai null? (.net)Can String.Split() restituisce mai null? (.net)

So di essere stato codificato nella convinzione che non lo fa, tuttavia, leggendo i documenti non vedo una simile affermazione. Dal momento che non esiste una tale dichiarazione nei documenti, quindi voglio chiedere nell'esperienza della comunità qualcuno ha effettivamente incontrato il caso che stringa.split restituisce null?

+1

pensare a quello che fa Split. La risposta è proprio di fronte a te. – asawyer

+0

Sì, in retrospettiva avrebbe dovuto essere ovvio. Oh beh, troppo tardi per non-chiedere ora. :) –

+0

@asawyer 5 anni dopo, sono curioso come è la risposta proprio di fronte a lui? – eaglei22

risposta

31

No, non può restituire null. Se si guarda alla fonte di esso, garantisce anche con contratti di codice:

public String[] Split(params char[] separator) { 
    Contract.Ensures(Contract.Result<String[]>() != null); 

Tutti i sovraccarichi pubblici anche fare la stessa garanzia.

10

No, non restituisce null. Se il separatore non è presente, restituisce l'intera stringa

Da MSDN

se questo caso non contiene nessuna delle stringhe separatore, la matrice restituita costituito da un unico elemento che contiene questa istanza. Se il parametro di separazione è nullo o non contiene caratteri, spazi vuoti vengono considerati i delimitatori

1

non può restituire, assicurarsi che la proprietà non è vuota

if (property != null) 
{ 
    string[] splitData = sampleObject.property.Split(new char[] { ',' }, 
    StringSplitOptions.RemoveEmptyEntries); 
} 
Problemi correlati