C#- Verwendung einer Variablen in einem "umhüllen", im lokalen Bereich?

Ich versuche, fügen Sie einige neue features, um eine C# - Anwendung - insbesondere, versuchen zu replizieren, werden einige Ihrer Verhaltensweisen, sondern in einem web-browser in der Anwendung, sondern, wie es derzeit ist.

Ich versuche eine Methode aufzurufen, der definiert wurde, in der Browser.cs Klasse innerhalb einer Methode in der MainWindow.cs Klasse.

Die Methode ist definiert in Browser.cs mit:

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

Ich bin dann zu versuchen, rufen Sie es von MainWindow.cs wie folgt:

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

Aber, ich bekomme einen compile-Fehler, der sagt:

Einem lokalen oder einem parameter mit dem Namen " e " deklariert werden können, in diesem Umfang, weil dieser name wird verwendet, in einem umschließenden lokalen Bereich zum definieren eines lokalen oder parameter

Was bedeutet das? Ich habe noch nie über diesen Fehler vor - ich bin mit der variable innerhalb des gleichen Bereichs wie, wo es erklärt wurde - was bedeutet es, von "umhüllen lokalen scope'? Ist das, weil ich bin mit e innerhalb der Klammern für den Methodenaufruf an mBrowser.Browser_Load(sender, e)?

Sicher, da der Aufruf dieser Methode ist in dem selben Umfang wie denen, die ich definiert haben e, es sollte nicht sein ein Problem von Umfang?

Ich habe versucht, die Durchführung der Ausschreibung:

mBrowser.Browser_Load(sender, EventArgs e);

aber das gab mir einen compile-Fehler sagen:

'EventArgs' ist eine Art, die nicht gültig sind in dem gegebenen Kontext.

Kann mir jemand erklären, was ich falsch mache hier, und was soll ich tun, um in der Lage sein, um diese Methode aufrufen, richtig?

  • Haben Sie so etwas wie catch(Exception e) in der Methode ?
  • Du verwendest zwei Variablen namens e in demselben Umfang. Normalerweise tritt aufgrund eines Ereignisses, genannt e, sowie eine Ausnahme. Ändern Sie Ihre Ausnahme von der ex, oder benennen Sie Ihre Veranstaltung von der e auf die Veranstaltung, und Sie werden in Ordnung sein. Sie können auch EventArgs.Leer, wenn Sie einfach eine Standard-EventArgs-Objekt mit Standard-Eigenschaften.
  • Brilliant - verpasst, die ich genannt Exception 'e' als auch - Dank sehr viel!
  • mBrowser.Browser_Load(sender, EventArgs e); ist nicht gültig, Sie hätten verwenden mBrowser.Browser_Load(sender, e);, einfach nur sagen
InformationsquelleAutor Noble-Surfer | 2016-04-27
Schreibe einen Kommentar