11
votes

C #: Déclare qu'une fonction ne reviendra jamais NULL?

arrière-plan: Il existe ce principe de développeur "si ma fonction renvoie ma fonction nulle ou lancer une exception si l'élément demandé n'existe pas?" que je ne voudrais pas discuter ici. J'ai décidé de jeter une exception pour tous les cas qui doivent renvoyer une valeur et cette valeur n'existerait que dans les cas de demande (programmatie ou logiquement) invalide.

et enfin ma question: Puis-je marquer une fonction pour que le compilateur sache qu'il ne renverra jamais NULL et de prévenir quiconque vérifie si la valeur de retour est NULL?


3 commentaires

Duplicaté possible de Comment puis-je montrer qu'une méthode ne reviendra jamais NULL (conception par contrat) en C #


Aussi: Stackoverflow.com/questions/792531/...


Oh, je ne les ai pas vus, même si je cherchais (évidemment pas assez fort)


4 Réponses :


0
votes

Si vous retournez un type de valeur, il ne peut pas être null (sauf si vous le faites explicitement, en utilisant l'emballage «nullable» de système).


0 commentaires



3
votes

Utilisation de contrats de code Vous pouvez définir un contrat qu'un procédé ne renvoie pas NULL.

using System.Diagnostics.Contracts; // required namespace 

public T MethodName()
{
    Contract.Ensures(Contract.Result<T>() != null); //where T is the return type.

    // method body...
}


0 commentaires