myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Wie kann ich ein Typargument expliziert angeben?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Wie kann ich ein Typargument expliziert angeben?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
XBORIAL XBORIAL ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.01.2019
Beiträge: 2
Entwicklungsumgebung: Visual Studio
Herkunft: Berlin


XBORIAL ist offline

Wie kann ich ein Typargument expliziert angeben?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

ich habe ein Anfängerproblem zum unten aufgeführten Code. Ich soll ein Typargument expliziert angeben. Weiss einer Rat, wie ich das Problem lösen könnte? Besten Dank im Voraus!

C#-Code:
using System;

class Permutations
{
    static void Main(string[] args)
    {
        int[] values = { 1, 2, 3, 4 };
        Generate(values.Length, values); // Hier wird Generate rot unterstrichen
        string[] words = { "The", "quick", "brown", "fox" };
        Generate(words.Length, words); // Hier wird Generate rot unterstrichen

        Console.ReadKey();
    }

    static void Generate<T>(T[] A, int n)
    {
        if (n >= 1)

           Console.WriteLine("" + string.Join("", A));
           else
         {
               Generate(A, n + 1);

               for (int i = n + 1; i < n; i++)
              {
                    Swap(ref A[n], ref A[i]);
                    Generate(A, n + 1);
                    Swap(ref A[n], ref A[i]);
              }
         }
    }

    // Swap Funktion
    static void Swap<T>(ref T swap1, ref T swap2)
    {
        T temp = swap1;
        swap1 = swap2;
        swap2 = temp;
    }
}

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von XBORIAL am 28.01.2019 16:56.

27.01.2019 20:18 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
trashkid2000 trashkid2000 ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.12.2010
Beiträge: 155


trashkid2000 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi,

wo kommt denn die Methode

C#-Code:
Generate(..., ...)

her?

Da fehlt doch sicher ein Namespace - Import?

Gruß, Marko
27.01.2019 20:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.359
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du übergibst beim ersten Generate auch den falschen Parameter.
Dort musst du values und dann erst values.Length übergeben.

Es würde reichen, wenn du den int Parameter entfernst und nur das Array mitgibst.
Den zweiten Parameter bekommst du so oder so aus der Array.Length Eigenschaft.

Ebenfalls solltest du den Helfern etwas unter die Arme greifen und deinen Code zum guten lesen Einrücken + die Code Tags nutzen.

C#-Code:
using System;

class Permutations
{
    public static void Main(string[] args)
    {
        int[] values = { 1, 2, 3, 4 };
        string[] words = { "The", "quick", "brown", "fox" };

        Generate(values, values.Length);
        Generate(words, words.Length);

        Console.ReadKey();
    }

    private static void Generate<T>(T[] array, int length)
    {
        if (length >= 1)
        {
            Console.WriteLine("" + string.Join("", array));
        }
        else
        {
            Generate(array, length + 1);

            for (int i = length + 1; i < length; i++)
            {
                Swap(ref array[length], ref array[i]);
                Generate(array, length + 1);
                Swap(ref array[length], ref array[i]);
            }
        }
    }

    // Swap Funktion
    private static void Swap<T>(ref T current, ref T next)
    {
        T temp = current;
        current = next;
        next = temp;
    }
}

Nachtrag:
@trashkid2000
Die Methode steht dort, ist nur wegen den fehlenden Code Tags und der fehlenden Einrückung etwas leicht zu überlesen!

T-Virus

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von T-Virus am 27.01.2019 21:19.

27.01.2019 21:16 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
XBORIAL XBORIAL ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.01.2019
Beiträge: 2
Entwicklungsumgebung: Visual Studio
Herkunft: Berlin

Themenstarter Thema begonnen von XBORIAL

XBORIAL ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Super, Vielen Dank, T-Virus

Ja, leider hat die Einrückung beim Erstellen des Themas nicht funktioniert. Sorry hierfür!
Bin hier neu und muss noch lernen mit dem Forum umzugehen.

Besten Dank nochmal,. Das hat mir sehr geholfen.
27.01.2019 21:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.396
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist online

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Editiere deinen Eingangsbeitrag und füge die C#-Tags hinzu (so lernst du es ;-).
Und über die Vorschau kannst du es dann überprüfen, bevor du es absendest.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am 28.01.2019 09:10.

28.01.2019 09:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 9 Monate.
Der letzte Beitrag ist älter als 9 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 22.11.2019 08:43