Laden...

Methode wird bei Variable aufgerufen? o.O [Help pls]

Erstellt von Razzernp vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.861 Views
R
Razzernp Themenstarter:in
6 Beiträge seit 2010
vor 13 Jahren
Methode wird bei Variable aufgerufen? o.O [Help pls]

Hallo,
im Main teil hab ich nur 4 Variablen deklariert, allerdings werden sie aber durch die deklaration auch aufgerufen... seht selbst...
bin relativ neu, anregungen gern gesehen
Das Programm gibt einfach die eingegeben IP aus, achtet allerdings bei der Eingabe auf Falscheingaben



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace falscheeingabe
{
    class Program
    {
        

        static void Main(string[] args)
        {


            int ip = pruefena();
            int ip2 = pruefenb();
            int ip3 = pruefenc();
            int ip4 = pruefend();
            Console.WriteLine("----------------");
            Console.WriteLine("Ihre IP: {0}.{1}.{2}.{3}", ip, ip2, ip3, ip4);
           Console.ReadLine();

        }
        public static int pruefena()
        {
            int trua = 0;
            int zahl = 0;
            int iprage1 = 0;

            while (trua == 0)
            {
                Console.Write("Ip Teil 1: ");
                string input = Console.ReadLine();

                if (!int.TryParse(input, out zahl))
                {
                    Console.WriteLine("Bitte geben sie eine Zahl ein.");
                    continue;
                }
                if (zahl > 255)
                {
                    Console.WriteLine("Bitte Werte zwischen 0 und 255 eingeben");
                    continue;
                }

                else
                {
                    
                    trua = 1;
                    iprage1 = int.Parse(zahl.ToString());
                    
                    
                    
                }
             }
            return iprage1;
        }
        public static int pruefenb()
        {
            int trua = 0;
            int zahl = 0;
            int ip_rage2 = 0;

            while (trua == 0)
            {
                Console.Write("Ip Teil 2: ");
                string input = Console.ReadLine();

                if (!int.TryParse(input, out zahl))
                {
                    Console.WriteLine("Bitte geben sie eine Zahl ein.");
                    continue;
                }
                if (zahl > 255)
                {
                    Console.WriteLine("Bitte Werte zwischen 0 und 255 eingeben");
                    continue;
                }

                else
                {
                    
                    trua = 1;
                    ip_rage2 = int.Parse(zahl.ToString());
                    

                }
            }
            return ip_rage2;
        }
        public static int pruefenc()
        {

            int trua = 0;
            int zahl = 0;
            int ip_rage3 = 0;

            while (trua == 0)
            {
                Console.Write("Ip Teil 3: ");
                string input = Console.ReadLine();

                if (!int.TryParse(input, out zahl))
                {
                    Console.WriteLine("Bitte geben sie eine Zahl ein.");
                    continue;
                }
                if (zahl > 255)
                {
                    Console.WriteLine("Bitte Werte zwischen 0 und 255 eingeben");
                    continue;
                }

                else
                {

                    trua = 1;
                    ip_rage3 = int.Parse(zahl.ToString());
                    

                }
            }
            return ip_rage3;
        }
        public static int pruefend()
        {

            int trua = 0;
            int zahl = 0;
            int ip_rage4 = 0;

            while (trua == 0)
            {
                Console.Write("Ip Teil 4: ");
                string input = Console.ReadLine();

                if (!int.TryParse(input, out zahl))
                {
                    Console.WriteLine("Bitte geben sie eine Zahl ein.");
                    continue;
                }
                if (zahl > 255)
                {
                    Console.WriteLine("Bitte Werte zwischen 0 und 255 eingeben");
                    continue;
                }

                else
                {

                    trua = 1;
                    ip_rage4 = int.Parse(zahl.ToString());
                    

                }
            }
                return ip_rage4;
        }

5.657 Beiträge seit 2006
vor 13 Jahren

Was genau ist jetzt deine Frage?

Weeks of programming can save you hours of planning

C
52 Beiträge seit 2008
vor 13 Jahren

Hallo Razzernp,

das sind grundlagen, die vorhande sein sollten (siehe dazu FAQ links im hauptmenü).

Aber trozdem eine kurze erklärung, was da passiert.

Du weißt den variablen in der Main-Methode jeweils eine Methode zu und wenn eine methode einer variablen zugewiesen wird, wird diese methode ausgeführt und dann der returnvalue der methode in die variable übernommen. Das ganze hat also schon seine richtigkeit, so wie es da passiert.

zur einführung kann ich dir das openbook C# empfehlen, steht ebenfalls links im menü unter dem punkt "Ressourcen"

MfG
Craze

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

es ist auch kein gutes Design, daß Du 4 Methoden hast die eigentlich alle dasselbe tun. Es würde eine Methode reichen, die einen Übergabeparameter bekommt.

Das alles sind aber in der Tat alles Grundlagen, bitte setzte Dich damit zuerst auseinander. Schau Dir dazu z.B. [FAQ] Wie finde ich den Einstieg in C#? an.

Beachte bitte auch diese Hinweise, Punkte 1.1 und 1.1.1

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo Razzernp,

du solltest dich mit den Grundlagen der OOP befassen. Verwende doch einfache eine Klasse IP und ein paar Helfer-Methoden.

zero_x

V
78 Beiträge seit 2008
vor 13 Jahren

Verwende doch einfache eine Klasse IP und ein paar Helfer-Methoden.

Da möchte ich noch anmerken, dass es bereits eine IPAddress Klasse im .NET Framework gibt: IPAddress

Diese hat sowohl die Methoden IPAddress.TryParse zur Validierung/Konvertierung eines Strings, als auch ToString (wie jedes object 😉 ) um die IPAdresse formatiert(x.x.x.x bzw ipv6) auszugeben.
Ausserdem wird zusätzlich IPv6 unterstützt.

Damit lässt sich der Code des Threaderstellers vermutlich auf das folgende kürzen:

static void Main(string[] args)
{
    IPAddress ip = null;
    string input = "";

    while (!IPAddress.TryParse(input, out ip))
    {
        Console.Clear();
        Console.Write("Please enter your ip: ");
        input = Console.ReadLine();
    }

    Console.WriteLine("Your IP address is: " + ip.ToString());
    Console.ReadKey();
}
1.457 Beiträge seit 2004
vor 13 Jahren

Hallo Razzernp,

Bitte beachte Punkt 1.1.1 aus diesem Post [Hinweis] Wie poste ich richtig?.

Hier wird jedem geholfen, der eine detaillierte Frage stellt und sich bemüht die Grundlagen zu erlernen.

Wie schon Vitab geschrieben hat, gibt es im .NET Framework entsprechende Klassen dafür.