2017-06-20 1 views
0

Comment retourner un objet de classe à condition différente.objet de classe fondée sur la condition

Supposons que si mon résultat est l'authentification de retour succès, SINON Erreur de classe de retour.

public Class Example 
{ 
    public Authentication GetDetails(int id) 
    { 
     Authentication objAuth = new Authentication(); 

     if(id==100) 
     { 
      return objAuth ; 
     } 
     else 
     { 
       ClassB objB=new ClassB(); 
       return objB; 
     } 
    } 
} 

static Void Main() 
{ 
    Example obj = new Example(); 
    obj.GetDetails(); 
} 
+8

Vous devez utiliser des exceptions. – SLaks

+1

Vous réinventez une roue carrée. S'il vous plaît envisager de lancer une exception si l'authentification échoue. –

+0

En ce qui concerne les exceptions dans des scénarios communs https://docs.microsoft.com/en-us/dotnet/standard/exceptions/best-practices-for-exceptions#handle-common-conditions-without-throwing-exceptions –

Répondre

1

Votre fonction doit être un type de retour dont les deux objets héritent. Si elles n'ont pas de classe de base commune, il faudra alors avoir un type de retour Object. J'ajouterais cependant que s'ils n'héritent pas d'un parent commun, alors vous devriez probablement le coder différemment. Vous ne voulez pas que les appels à la fonction doivent déterminer quel type d'objet ils récupèrent. Si vous donnez plus de détails sur ce que vous essayez de faire, les gens peuvent vous aider à mieux vous orienter. Les commentaires ci-dessus suggère de jeter une exception probablement la direction que vous devez aller.

+0

Merci pour votre réponse. Désolé de confondre l'écriture de classe ErrorMessage. Supposons que je veux retourner un objet de classe B si ma condition n'était pas satisfaite. –