Laden...

Wie kann ich Code in mehrere *.cs Dateien aufteilen?

Erstellt von stefanpc81 vor 6 Jahren Letzter Beitrag vor 6 Jahren 3.524 Views
S
stefanpc81 Themenstarter:in
24 Beiträge seit 2017
vor 6 Jahren
Wie kann ich Code in mehrere *.cs Dateien aufteilen?

Hallo,

ich habe zuletzt ein Programm komplett mit HTML/Javascript programmiert und bin jetzt dabei, Schritt für Schritt mit C# neu zu Programmieren. Da die 11 Javascript .js-Dateien zusammengefasst mehrere Hundert Zeilen Code enthalten, würde ich gerne mein C#-Projekt auch aufteilen um einen besseren Überblick zu haben. Wie das konkret gehen soll, verstehe ich weder über meine beiden Bücher noch über Suchen im Internet. Ich verwende Visual Studio Community 2017.
Mein Projekt heißt "GDI" und die "Form1.cs" enthält den Code

namespace GDI
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Code...
    }
}

Wenn ich eine Datei über GDI->Hinzufügen->Neues Element->Codedatei erstelle, bekomme ich eine Datei "CodeFile1.cs". Nach Umbenennen dieser möchte ich mit (in JS hieß es Funktionen) public void... Code hinzufügen wollen.

1.Muss ich in die Datei "CodeFile1.cs" schreiben

namespace GDI
{
    public partial class Form1
    {
        public void funktion1()
        {
        public int variable1 = ...
        Code...
        }
    }
}

oder wie geht das?

  1. Kann in "CodeFile1.cs" z.B. ein Code wie
private void pictureBox41_Click(object sender, EventArgs e)

abgerufen werden?

🤔

Vielen Dank schon mal.
Grüße,
Stefan

16.807 Beiträge seit 2008
vor 6 Jahren

Im Endeffekt solltest Du ganz vorne bei den Grundlagen beginnen: [FAQ] Wie finde ich den Einstieg in C#?

Es wird Dich nicht arg weit bringen, wenn Du Dir hier Puzzleteile zusammen lernst.
Du solltest mit einem Tutorial strukturiert an die Sache gehen.

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

dein aktuelles Problem lässt sich mit partiellen Klassen lösen.
File1:


public partial class Form1 : Form
{
...whatever
}

File2:


public partial class Form1 : Form
{
...whatever2
}

Nichts desto trotz solltest du es lassen. Warum ist recht einfach erklärt - C# ist wie Java objektorientiert - man benutzt Klassen um Funktionalität zu bündeln. Diese Klassen kannst du dann wiederum in deiner Form benutzen.

Wenn du ein File hast, bei dem du das Bedürfnis hast dieses mit "partial" aufzuteilen - hast du in 99% der Fälle mies programmiert, was du dir besser gleich abgewöhnst 😉

LG

S
stefanpc81 Themenstarter:in
24 Beiträge seit 2017
vor 6 Jahren

Wenn du ein File hast, bei dem du das Bedürfnis hast dieses mit "partial" aufzuteilen - hast du in 99% der Fälle mies programmiert, was du dir besser gleich abgewöhnst 😉

Danke für den Hinweis. Dann kriege ich eben eine Monsterdatei 😉

M
368 Beiträge seit 2006
vor 6 Jahren

Monsterdatei 😉

...was zu weiterem Ärger führen kann: Wikipedia - Single Responsibility Prinzip

Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉

T
2.219 Beiträge seit 2008
vor 6 Jahren

@stefanpc81
Wie Abt schon schreibt, solltest du dich erst einmal mit den Grundlage befassen.
Es bringt nichts, direkt mit Windows Forms anzufangen ohne die Grundlagen von C# zu kennen.
Gerade in Windows Forms und anderen UI Techniken im Desktop Bereich unter C#, kommen viele Techniken vor, die man ohne Grundlagen und dem Verständnis dafür nicht sauber umsetzt.
Threads zu solchen unsauberen Vorgehen, gibt es im Forum genug.

Nimm dir die OpenBooks und fang damit an, dann hast du schon einen guten Einstieg.
Ansonsten gibt es auch noch links unter Angebote/Bücher entsprechende Werke.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

T
461 Beiträge seit 2013
vor 6 Jahren

Und das was ich hier so toll finde, ist eigentlich schon alles vorhanden 😉

siehe Bild...

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄