2017-02-28 3 views
1

Notre application nécessite int? variables. Je vérifie souvent les deux pour m'assurer non null et pas 0 et il devient long.int? version disponible pour String.IsNullOrWhiteSpace

Y at-il une sortie de la version boîte de String.IsNullOrWhiteSpace() ou String.IsNullOrEmpty() pour int?

Peut-être que cela nécessiterait une méthode d'extension?

S'il y avait même quelqu'un ou si quelqu'un en faisait un, est-ce que quelque chose comme ça serait considéré comme une mauvaise pratique?

+0

vous pouvez faire une extension pour elle, mais je voudrais juste nommer bien, HasNonDefaultValue –

+4

Ou même '(x ?? 0) == 0 –

+0

et ceci n'est pas considéré comme une pratique terrible associée à un mortel impie? Je me sens comme à chaque fois que je suggère une extension, je suis alésé ici. – markokstate

Répondre

1

Je ne pense pas, mais il est facile d'écrire votre propre:

[Pure] 
public static bool IsNullOrDefault<T>(this T? pValue) 
where T : struct { 
    return pValue == null || pValue.Value.Equals(default(T)); 

    // or as suggested in comments (tested) 
    return pValue == null || EqualityComparer<T?>.Default.Equals(pValue, default(T)); 
} 
+1

En note, pensez à utiliser 'EqualityComparer .Default.Equals' pour éviter la boxe encourue en appelant' Object.Equals'. –