Ho un codice abbastanza semplice (C #):
/// <summary>
/// Truncates a string to a maximum length.
/// </summary>
/// <param name="value"> The string to truncate. </param>
/// <param name="maxLength"> The maximum length of the string. </param>
/// <returns>
/// The original string if its length is less than or equal to max length, else a truncated
/// string of length maxLength.
/// </returns>
public static string Truncate(string value, int maxLength)
{
if(maxLength <= 0) throw new ArgumentOutOfRangeException("maxLength");
if (string.IsNullOrEmpty(value)) return value;
return value.Length <= maxLength ? value : value.Substring(0, maxLength);
}
È chiaro che se maxLength
è minore di 0, non posso usarlo come una lunghezza di stringa, quindi attualmente sto usando un'istruzione guardia per evitare valori maxLength
non validi.
La mia domanda è: è buona o cattiva pratica usare questa istruzione di guardia, quando value.Substring
genererà comunque la stessa eccezione? È solo un codice sprecato?