Variable übergeben



  • Hallo zusammen,
    ich bin dabei eine Aufgabe zu bearbeiten, bei der Daten aus Wikipedia in einer Windows-Anwendung angezeigt werden sollen.
    Dabei möchte ich eine Variable übergeben. Die Lösung ist vermutlich ganz einfach, aber leider bekomme ich das trotzdem nicht hin.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    using System.Collections;
    using System.Net;
    using System.Xml;
    using System.IO;
    
    namespace LPsoftware_E22
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btnSuchen_Click(object sender, EventArgs e)
            {
                //webBrowser.Navigate("http://de.wikipedia.org/wiki");
                navigateWebbrowser(tbBegriff.Text);
            }
    
            private void tbBegriff_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Return) navigateWebbrowser(tbBegriff.Text);
            }
    
            public void navigateWebbrowser(string begriff)
            {
                if (begriff != "") webBrowser.Navigate(wikipedia.getUrl(begriff));
            }        
        }
    
        /// <summary>
        /// Klasse Wikipedia
        /// </summary>
        public class wikipedia
        {
    
            public static string getUrl(string begriff)
            {
                string url = "";
                return url = "http://de.wikipedia.org/wiki/" + begriff;
            }
    
           [b] //WebAccess.getContentStream url = new WebAccess.getContentStream();
            //WebAccess.getContentStream (url) ;[/b]
        }
    
        /// <summary>
        /// Klasse WebAccess
        /// </summary>
        public class WebAccess
        {
            public Stream getContentStream(string url)
            {
    
                // Erstellen eines WebRequest
                HttpWebRequest request = (HttpWebRequest)
                WebRequest.Create(url);
    
                // User Agent 
                // (Anwendungen auf dem Server schließen anhand des übermittelten User-Agents auf die Funktionen, die der Webbrowser bietet)
                request.UserAgent = "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)";
    
                // Anfordern der Ressource aus dem Internet
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    
                // Status der HTTP-Antwort (z.B. OK)
                if (response.StatusDescription != "OK") throw new MyWebException("MyWebException");
    
                // Stream wird geholt
                Stream dataStream = response.GetResponseStream();
    
               // response.Close();
             //   return dataStream;
    
                readFromXml(dataStream);
            }
    
            public string readFromXml(Stream ds)
            {
                XmlReader reader = XmlTextReader.Create(ds);  // Erstellen eines XmlTextReaders  
                StringBuilder sb = new StringBuilder();       // Erstellen eines StringBuilders
    
                while (reader.Read())   // ließt den nächsten Knoten, bis keiner mehr exsistiert (false)
                {
                    // solange der aktuelle Knotentyp ein Element-Knotentyp ist,...
                    if (reader.NodeType == XmlNodeType.Element)
                    {
                        switch (reader.Name)
                        {
                            case "timestamp":
                                // Anlegen des strings strMyDateTime mit dem aktuellen Element mit dem Inhalt als String-Objekt (Time-String)
                                string strMyDateTime = reader.ReadElementContentAsString();
    
                                // Konvertiert String einer Datums- und Uhrzeitangabe in die entsprechende DateTime
                                DateTime strToDT = DateTime.Parse(strMyDateTime);
    
                                // Gibt die umgewandelte DateTime zurück
                                if (strToDT.ToString() != "") lblErgÄnderung.Text.Add("Letzte Änderung am: " + strToDT.ToString() + " Uhr");
                                break;
                        }
                    }
    
                    // solange der aktuelle Knotentyp ein Element-Knotentyp ist und es das Element "username" gibt,...
                    if (reader.NodeType == XmlNodeType.Element && reader.Name != null)
                    {
                        switch (reader.Name)
                        {
                            case "username":
                                // Liest das aktuelle Element und gibt den Inhalt als String-Objekt zurück
                                lblErgBearbeiter.Text.Add(reader.ReadElementContentAsString());
                                break;
                        }
                    }
                    // solange der aktuelle Knotentyp ein Element-Knotentyp ist und es das Element "ip" gibt,...
                    if (reader.NodeType == XmlNodeType.Element && reader.Name != null)
                    {
                        switch (reader.Name)
                        {
                            case "ip":
                                // Liest das aktuelle Element und gibt den Inhalt als String-Objekt zurück
                                lblErgBearbeiter.Text.Add(reader.ReadElementContentAsString());
                                break;
                        }
                    }
                }
    
                reader.Close();
                return sb.ToString();   // Gibt einen String zurück, der das aktuelle Object darstellt (sb)
            }        
        }
    
        public class MyWebException : ApplicationException
        {
            public MyWebException(string message)
                : base(message)
            {
            }
        }
    }
    

    Ich möchte die Variable url in Zeile 53 übergeben, leider bekomme ich das nicht hin. Ich habe u.a. folgendes versucht:

    //WebAccess.getContentStream url = new WebAccess.getContentStream();
    

    und

    //WebAccess.getContentStream (url);
    


  • return "http://de.wikipedia.org/wiki/" + begriff;



  • Ich möchte gerne den Inhalt von url an die Methode getContentStream weitergeben.



  • Ok, offensichtlich fehlen Dir absolute Grundlagen was Programmierung angeht, zumindest in C#.

    Daher erstmal Hausaufgaben machen: Lernen was eine Klasse ist und was ein Objekt (bzw Instanz) einer Klasse ist.

    Zu dem Problem: du versuchst auf eine nicht statische Methode der Klasse WebAccess zuzugreifen ohne eine Instanz der Klasse anzulegen. Das KANN nicht funktionieren. Entweder die Funktionen statisch machen oder aber eine Instanz der Klasse anlegen und darauf zugreifen.



  • Vielen Dank. Jetzt habe ich zumindestens schon mal einen Anhaltspunkt.


Anmelden zum Antworten