Je me trouve en train de faire le type d'extraits suivants un lot éditer: la fonction FOO provient d'une API et je n'ai pas accès à son code. Essentiellement, la fonction de l'API attend une entrée non nulle. P> existe-t-il un moyen de nettoyeur C # pour le faire? Ou est-ce que je fais quelque chose d'architecture incorrect si je me trouve beaucoup de choses? p> excuses si c'est une répétition, je ne peux pas sembler trouver les mots justes pour la recherche. P> J'ai essayé d'utiliser le nouvel opérateur coalescent pour y parvenir, mais que ne peut pas être utilisé pour appeler une fonction. Je ne sais pas si les opérateurs ternaires peuvent être utilisés pour y parvenir. P> J'attends qu'il y ait une façon une ligne de faire cela. Genre de comme p>
3 Réponses :
Vous pouvez vérifier NULL Vérifier à l'intérieur de la méthode FOO:
foo(bar);
Je suppose que j'aurais dû faire ça clair. La fonction FOO provient d'une API que je n'ai pas accès à. La fonction de l'API attend essentiellement une entrée non nulle. Modification de mon message ... merci!
Le vous devez juste aller avec votre déclaration si
Vous pouvez utiliser un opérateur ternaire < / a> Par exemple, cela ressemblerait à quelque chose comme ceci: où à * code> vous inséreriez l'instruction que vous souhaitez exécuter si
bar == null code>. p> p>
Je suppose que si je n'avais rien à exécuter quand bar == null, je pouvais juste faire `` `` bar! = Null? FOO (bar): retour; `` `C'est une façon de le faire, je suppose. Merci!
@Kishorevenkateshan Vous pouvez le laisser ouverte comme ce bar! = Null? FOO (bar) :; code> ou si vous souhaitez instantanément retourner, utilisez le mot clé de retour comme dans votre exemple.
Est-ce que je fais quelque chose d'architectural incorrect si je me trouve beaucoup de choses? p> blockQuote>
Peut-être. Vous devriez généralement savoir si vos variables peuvent jamais être nuls et omettre les chèques. C # 8 introduit une fonctionnalité pour vous aider à déclarer, vérifier et appliquer qu'une référence ne peut pas être null: Types de référence nullables . P>
Ah c'est en fait meilleur! Merci de me faire remarquer cela. Je veillerai à lire davantage sur les nouvelles fonctionnalités C # 8.
Qu'est-ce qui est "impur" à propos d'une déclaration "if / sinon"?!?
Il y a une manière plus propre, essayez d'utiliser des fonctions d'agrégation telles que
trueforall (tableau, prédicat) code> avec collections ou essayez linq.