En C# à l'aide d'une variable dans une "enveloppant" locale?

Je suis en train d'ajouter de nouvelles fonctionnalités à une application C# en particulier, en essayant de reproduire certains de ses comportements, mais à l'intérieur d'un navigateur web, plutôt que dans l'application, comme c'est le cas actuellement.

Je suis en train d'appeler une méthode qui a été défini dans le Browser.cs classe à partir de l'intérieur d'une méthode dans le MainWindow.cs classe.

La méthode est définie dans Browser.cs avec:

public partial class Browser : Form{
    public Browser(){
        ...
    }
    public void Browser_Load(object sender, EventArgs e){
        webKitBrowser1.Navigate("https://google.com");
    }
    ...
}

Je suis ensuite essayer de l'appeler à partir d' MainWindow.cs comme suit:

public partial class MainWindow : Window{
    ...
    public MainWindow(){
        ...
        Browser mBrowser = new Browser();
        Object sender = new Object();
        EventArgs e = new EventArgs();
        mBrowser.Browser_Load(sender, e);
        ...
    }
    ...
}

Mais, j'ai une erreur de compilation qui dit:

Un local ou d'un paramètre nommé " e " ne peuvent pas être déclarées dans le présent champ d'application, car ce nom est utilisé dans un enfermant une portée locale pour définir un local ou d'un paramètre

Qu'est-ce que cela signifie? Je n'ai jamais rencontré cette erreur avant - je suis l'aide de la variable à l'intérieur de la même portée que lorsqu'il a été déclaré - que faut-il dire par "en joignant une portée locale'? Est-ce parce que je suis en utilisant e l'intérieur de la parenthèse pour l'appel de méthode à mBrowser.Browser_Load(sender, e)?

Sûrement, puisque l'appel de cette méthode est à l'intérieur du même champ d'application que lorsque j'ai défini e, il ne devrait pas être un problème de portée?

Je n'ai essayez d'effectuer un appel avec:

mBrowser.Browser_Load(sender, EventArgs e);

mais cela m'a donné une erreur de compilation en disant:

'EventArgs' est un type, qui n'est pas valide dans le contexte donné.

Quelqu'un peut-il point de ce que je fais de mal ici, et ce que je devrais faire pour être en mesure d'appeler cette méthode correctement?

  • Avez-vous quelque chose comme catch(Exception e) dans la méthode ?
  • Vous êtes à l'aide de deux variables appelées e dans le même champ d'application. Se produit habituellement en raison d'un événement appelé e, ainsi que d'une exception. Changez d'exception ex, ou renommer votre événement de e à l'événement, et vous serez amende. Vous pouvez également utiliser EventArgs.Vide, si vous avez simplement besoin d'un défaut EventArgs objet avec les propriétés par défaut.
  • Brillant manqué que j'avais appelé à la Exception 'e' comme bien merci beaucoup!
  • mBrowser.Browser_Load(sender, EventArgs e); n'est pas valide, vous devez utiliser le mBrowser.Browser_Load(sender, e);, juste en disant
InformationsquelleAutor Noble-Surfer | 2016-04-27