Je vais commencer par dire que je ne suis pas un débutant en C# mais pas beaucoup plus et besoin d'aide pour retourner la valeur à la main. Ou plutôt dites-moi quelle est la "bonne" façon.retourner la valeur à la main C#
Je veux retourner une valeur d'échec (simplement -1) à partir de l'application, en cas d'exception et se retrouver dans une capture. Dans ce cas, transmettre info à main pour retourner -1. La façon dont je l'ai résolu consistait simplement à ajouter une variable globale statique mainReturnValue (pour pouvoir y accéder à partir de main), et à mettre sa valeur à -1 dans les captures.
Est-ce une façon correcte de le faire, basé sur mon code actuel?
Si quelqu'un se demande si les applications sont exécutées sans intervention de l'utilisateur, c'est pourquoi j'ai besoin d'attraper l'état de sortie. Le formulaire/l'interface graphique affiche uniquement des informations sur la progression, au cas où il a été démarré manuellement.
namespace ApplicationName
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{ ...
static int mainReturnValue = 0; //the return var
static int Main(string[] args)
{
Application.Run(new Form1(args));
return mainReturnValue; //returning 0 or -1 before exit
}
private void Form1_Load(object sender, System.EventArgs e)
{
the code..in turn also calling some sub functions such as DoExportData...and I want to be able to return the value to main from any function...
}
private int DoExportData(DataRow dr, string cmdText)
{
try { ... }
catch
{ mainReturnValue = -1; }
}
Merci.
Je ne vois pas comment cela peut fonctionner. Vous ne pouvez accéder à la ligne après 'Application.Run' en fermant' form1'. D'ici là, 'form1.Result' n'existe plus –
@EMett Après que' Application.Run() 'a terminé, le formulaire ne sera plus affiché, mais l'objet référencé par' form1' existe toujours. – Galax