Lors de la révision du code, il y avait une source qui m'intéressait, je vais donc la lister. Ce n'est pas un gros problème, mais cela ne peut pas être aidé.
int? inputValue = null;
//NG Je ne pouvais pas penser à une telle méthode de mise en œuvre, alors j'ai pensé que c'était un peu incroyable.
if (string.IsNullOrWhiteSpace(inputValue.ToString()))
{
}
//Utilisez la propriété OK
if (!inputValue.HasValue)
{
}
// OK !Nullable.C'est bien car c'est équivalent à HasValue.
if (inputValue == null)
{
}
2. Extrayez la valeur du type à tolérance nulle.
int? inputValue = 1;
int value;
if (inputValue.HasValue)
{
//NG Arrêtons l'idée que tout doit être une chaîne de caractères
value = int.Parse(inputValue.ToString());
//NG casting inutile 1
value = Convert.ToInt32((object)inputValue);
//Utiliser la propriété OK
value = inputValue.Value;
//OK On dirait un casting inutile, mais inputValue.La valeur est appelée.
value = (int)inputValue;
}
object objectValue = 1;
int castValue;
if (objectValue != null)
{
//Casting comme une chaîne NG est un gaspillage
castValue = int.Parse(objectValue.ToString());
// OK .Utilisez le processus de conversion fourni par Net Framework
castValue = Convert.ToInt32(objectValue);
//OK casting normal
castValue = (int)objectValue;
}
Beaucoup de gens pensent qu'il devrait s'agir d'une chaîne de caractères. Même s'il n'y a pas de problème de fonctionnement, le réviseur ne peut pas l'aider.
/**Vérification nulle**/
Integer inputValue = null;
//Personne n'écrirait cela en NG java.
//Au fait, C#Int?Est une structure Nullable, donc aucune vérification Null n'était nécessaire avant ToString.
if (inputValue == null || inputValue.toString().length() == 0) {
}
//OK Pour Java, il est correct de comparer avec null.
if (inputValue == null) {
}
/**Null tolérant**/
Integer inputValue = 1;
int value;
if (inputValue != null) {
//NG Arrêtons l'idée que tout doit être une chaîne de caractères
value = Integer.parseInt(inputValue.toString());
//NG casting inutile
value = (int) inputValue;
// OK Integer.intValue est appelée.
value = inputValue;
// OK
value = inputValue.intValue();
}
/**Type d'objet**/
Object objectValue = 1;
int castValue;
if (objectValue != null) {
//NG Si vous connaissez le type d'origine, vous n'avez pas besoin de le convertir en chaîne.
castValue = Integer.parseInt(objectValue.toString());
//OK Couler dans le moule d'origine
castValue = (int) objectValue;
}
Article précédent (brouiller le branchement conditionnel)
[Article suivant (interface fluide)] (http://qiita.com/csharpisthebest/items/403d40374acc70ef24e3)
Recommended Posts