Berichtigung meiner Aufgabe



  • Hmm dann so vielleicht?

    public L1 Mix (bool k)
    { y = k;
    return x;
    }
    public L2 Mux (double k, L1 l)
    { z = k;
    if (l.GetType().FullName == k.GetType().FullName)
    x = l;
    return z;
    }



  • und:

    public void Mex (L1 k, out double l, L2 m)
    { z = m;
    l = y;
    x = k;
    }



  • Und die Main wird so nicht funktionieren, du musst deine "gen" klasse schon komplett instanzieren, d.h. auch feste typen reingeben. du kannst hier nicht wieder "L1...." verwenden, da müssen jetzt typen stehen.



  • Hmm also so richtig verstehe ich das nun nicht, sind denn nun die L1 in der main falsch?Oder habe ich der class gen was falsch?Wie gesagt nur die dicken Worte haben gefehlt, mehr verändern darf ich nicht ;-)Wäre nett wenn ihr mir die Zeilen sagt wo etwas falsch ist.unendlichen Dank

    [cpp]using System;
    namespace aufgabe3
    {
    class gen <L1, L2, L3>
    {
    int i1 = 7;
    int i2 = 10;
    string s1 = "Guten ";
    string s2 = "Tag!";
    L1 x;
    L2 y;
    L3 z;
    public void init (double k)
    { x = k;
    }
    public void Summe ()
    { if (x.GetType().FullName == "System.String")
    Console.WriteLine(s1 + s2);
    else
    if (x.GetType().FullName == "System.Int32")
    Console.WriteLine(i1 + i2);
    else
    Console.WriteLine(x.GetType().FullName);
    }
    public L1 Mix (bool k)
    { y = k;
    return x;
    }
    public L2 Mux (double k, L1 l)
    { z = k;
    if (l.GetType().FullName == k.GetType().FullName)
    x = l;
    return z;
    }
    public void Mex (L1 k, out double l, L2 m)
    { z = m;
    l = y;
    x = k;
    }
    }
    class Beispiel
    {
    public static void Main ()
    {
    double a;
    double b= 7;
    double c;
    gen<L1,L2, L3> genobj1 = new gen<L1,L2, L3>();
    genobj1.init ("Winter");
    genobj1.Summe();
    a = genobj1.Mix(true);
    Console.WriteLine(a);
    gen<L1,L2, L3> genobj2 = new gen<L1,L2, L3>();
    genobj2.init (5);
    genobj2.Summe();
    c = genobj2.Mux(9.9999,genobj2.Mix(5));
    Console.WriteLine(c);
    gen<L1,L2, L3> genobj3 = new gen<L1,L2, L3>();
    genobj3.init (5.9);
    genobj3.Summe();
    2
    genobj3.Mex(genobj3.Mix(b),out b,genobj3.Mux(a, c));
    Console.WriteLine(b);
    }
    }
    }[/cpp]



  • Bitte verwende doch C# Tags. Und Bitte verwende keine Weiteren Tags in den C# Tags, sonst wird dein Code nicht richtig angezeigt.

    Zum Problem. Wenn du ein Objekt deiner Gen Klasse erzeugst musst du da auch vollspezifierte Datentypen als Typparameter übergeben.

    //Beispiel
    gen<int,int,int> genobj1 = new gen<int,int,int>();
    


  • Ist denn der Rest bis dahin richtig?

    using System;
    namespace aufgabe3
    {
        class gen<L1, L2, L3>
        {
            int i1 = 7;
            int i2 = 10;
            string s1 = "Guten ";
            string s2 = "Tag!";
            L1 x;
            L2 y;
            L3 z;
            public void init(double k)
            {
                x = k;
            }
            public void Summe()
            {
                if (x.GetType().FullName == "System.String")
                    Console.WriteLine(s1 + s2);
                else
                    if (x.GetType().FullName == "System.Int32")
                        Console.WriteLine(i1 + i2);
                    else
                        Console.WriteLine(x.GetType().FullName);
            }
            public L1 Mix(bool k)
            {
                y = k;
                return x;
            }
            public L2 Mux(double k, L1 l)
            {
                z = k;
                if (l.GetType().FullName == k.GetType().FullName)
                    x = l;
                return z;
            }
            public void Mex(L1 k, out double l, L2 m)
            {
                z = m;
                l = y;
                x = k;
            }
        }
        class Beispiel
        {
            public static void Main()
    {
    double a;
    double b= 7;
    double c;
    gen<string,double, bool> genobj1 = new gen<string,double, bool>();
    genobj1.init ("Winter");
    genobj1.Summe();
    a = genobj1.Mix(true);
    Console.WriteLine(a);
    gen<int,double, L2> genobj2 = new gen<int,double, L2>();
    genobj2.init (5);
    genobj2.Summe();
    c = genobj2.Mux(9.9999,genobj2.Mix(5));
    Console.WriteLine(c);
    gen<double, double, L3> genobj3 = new gen<double, double, L3>();
    genobj3.init (5.9);
    genobj3.Summe();
    genobj3.Mex(genobj3.Mix(b),out b,genobj3.Mux(a, c));
    Console.WriteLine(b);
    }
    }
    }
    

    So ungefähr jetzt? Hab mich danach gerichtet was drunter steht:-)
    Ja ich weiß, dass ich das noch nicht so ganz drauf hab;-)
    Fange ja auch grade erst mit c# an.



  • Also wenn du schon auf Datentypen überprüfen musst

    public void Summe()
            {
                if (x.GetType().FullName == "System.String")
                    Console.WriteLine(s1 + s2);
                else
                    if (x.GetType().FullName == "System.Int32")
                        Console.WriteLine(i1 + i2);
                    else
                        Console.WriteLine(x.GetType().FullName);
            }
    

    Dann würde ich das mit dem is-Operator machen. Aber sowas ist immer ein Zeichen für schlechtes Design. Ich verstehe auch nicht so ganz den Sinn was du da machen willst/musst. Erklär doch mal was das werden soll, eventuell kann man das ja anders machen.



  • Aufgabe:

    Gegeben ist folgendes C#-Programm. In diesem Programm wurden an den gekennzeichneten
    Stellen die Typ-Bezeichner int, double, bool, string, L1,
    L2 und L3 entfernt. Erganzen Sie die fehlenden Bezeichner, so dass ein lau ahiges
    Programm entsteht.

    using System;
    namespace aufgabe3
    {
    class gen <L1, L2, L3>
    {
    _____ i1 = 7;
    _____ i2 = 10;
    _____ s1 = "Guten ";
    _____ s2 = "Tag!";
    L1 x;
    L2 y;
    L3 z;
    public void init (____ k)
    { x = k;
    }
    1
    public void Summe ()
    { if (x.GetType().FullName == "System.String")
    Console.WriteLine(s1 + s2);
    else
    if (x.GetType().FullName == "System.Int32")
    Console.WriteLine(i1 + i2);
    else
    Console.WriteLine(x.GetType().FullName);
    }
    public L1 Mix (_____ k)
    { y = k;
    return x;
    }
    public _____ Mux (_____ k, _____ l)
    { z = k;
    if (l.GetType().FullName == k.GetType().FullName)
    x = l;
    return z;
    }
    public void Mex (_____ k, out _____ l, _____ m)
    { z = m;
    l = y;
    x = k;
    }
    }
    class Beispiel
    {
    public static void Main ()
    {
    _____ a;
    _____ b= 7;
    _____ c;
    gen<_____, _____, _____> genobj1 = new gen<_____, _____, _____>();
    genobj1.init ("Winter");
    genobj1.Summe();
    a = genobj1.Mix(true);
    Console.WriteLine(a);
    gen<_____, _____, _____> genobj2 = new gen<_____, _____, _____>();
    genobj2.init (5);
    genobj2.Summe();
    c = genobj2.Mux(9.9999,genobj2.Mix(5));
    Console.WriteLine(c);
    gen<_____, _____, _____> genobj3 = new gen<_____, _____, _____>();
    genobj3.init (5.9);
    genobj3.Summe();
    2
    genobj3.Mex(genobj3.Mix(b),out b,genobj3.Mux(a, c));
    Console.WriteLine(b);
    }
    }
    }
    

    Muss dann nur auf den Linien eben bool,string usw. eintragen.Am COde soll ich nichts verändern xD



  • Keiner mehr da der es mir berichtigt? Bräuchte die die Aufgabe zur Schule morgen früh 😞



  • kpl. ob das so stimmt 😕

    using System;
    namespace aufgabe3
    {
    class gen <L1, L2, L3>
    {
    int i1 = 7;
    int i2 = 10;
    string s1 = "Guten ";
    string s2 = "Tag!";
    L1 x;
    L2 y;
    L3 z;
    public void init (L1 k)
    { x = k;
    }
    public void Summe ()
    { if (x.GetType().FullName == "System.String")
    Console.WriteLine(s1 + s2);
    else
    if (x.GetType().FullName == "System.Int32")
    Console.WriteLine(i1 + i2);
    else
    Console.WriteLine(x.GetType().FullName);
    }
    public L1 Mix (L2 k)
    { y = k;
    return x;
    }
    public L3 Mux (L3 k, L1 l)
    { z = k;
    if (l.GetType().FullName == k.GetType().FullName)
    x = l;
    return z;
    }
    public void Mex (L1 k, out L2 l, L3 m)
    { z = m;
    l = y;
    x = k;
    }
    }
    class Beispiel
    {
    public static void Main ()
    {
    string a;
    int b= 7;
    double c;
    gen<string, bool, string> genobj1 = new gen<string, bool, string>();
    genobj1.init ("Winter");
    genobj1.Summe();
    a = genobj1.Mix(true);
    Console.WriteLine(a);
    gen<int, int, double> genobj2 = new gen<int, int, double>();
    genobj2.init (5);
    genobj2.Summe();
    c = genobj2.Mux(9.9999,genobj2.Mix(5));
    Console.WriteLine(c);
    gen<double, int, string> genobj3 = new gen<double, int, string>();
    genobj3.init (5.9);
    genobj3.Summe();
    genobj3.Mex(genobj3.Mix(b),out b,genobj3.Mux(a, c));
    Console.WriteLine(b);
    }
    }
    }
    

    lg lolo


Anmelden zum Antworten