Funktionen aus anderer .cs benutzen?

  • C#

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Gonger96.

    Funktionen aus anderer .cs benutzen?

    Hallo VBler,

    Ich schreibe mir gerade ein paar funktionen.
    Nun habe ich mir eine neue Komponente hinzugefügt --> Klasse --> Functions.cs


    Da drinnen steht nun mal zum testen eine Funktion von mir.

    Nun die Frage:

    Ich bekomme es nicht hin das ich von der Form1.cs auf diese Funktion zugreifen kann?
    Ich kann auch nicht schreiben Functions.Writter(****)..

    Wie löse ich dies am Leichtesten ohne das ich mir eine riesen Sache basteln muss?

    Hier noch die Codes:

    Form1.cs
    Spoiler anzeigen

    VB.NET-Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.IO;
    10. namespace cs_Function_Programm
    11. {
    12. public partial class Form1 : Form
    13. {
    14. public Form1()
    15. {
    16. InitializeComponent();
    17. }
    18. private void btn_write_Click(object sender, EventArgs e)
    19. {
    20. if (tb_text != null || tb_path != null || tb_datei != null) {
    21. Writter(tb_text.Text.ToString(),tb_datei.Text.ToString(),tb_path.Text.ToString());
    22. /// Writter geht nicht....
    23. }
    24. }
    25. }
    26. }



    Functions.cs
    Spoiler anzeigen

    VB.NET-Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. using System.IO;
    6. namespace cs_Function_Programm
    7. {
    8. class Functions
    9. {
    10. public void Writter(string text, string Datei_name, string path)
    11. {
    12. StreamWriter writer = new StreamWriter(path + Datei_name);
    13. writer.WriteLine(text);
    14. writer.Close();
    15. }
    16. }
    17. }



    Danke fürs anschauen

    Greez
    Entweder du erstellst eine Instanz von deiner Klasse functions und nutzt dann die Funktion von deiner Instanz, oder du markierst die Funktion aus functions als static:
    Möglichkeit 1:

    VB.NET-Quellcode

    1. functions myfunctions = new functions(); //Instanz erstellen
    2. myfunctions.Funktion(); //Aufruf


    Möglichkeit 2:
    Du machst in deiner Klasse functions aus

    VB.NET-Quellcode

    1. void Funktion()
    2. {
    3. }

    das hier:

    VB.NET-Quellcode

    1. static void Funktion()
    2. {
    3. }

    Dann kannst du es ganz einfach über functions.Funktion(); aufrufen
    Du musst erst ein neues Objekt vom Typ der Klasse "Functions" erstellen in deiner Form1.cs und dann auf die Funktion des Objekts zurück greifen. Oder du deklarierst die Funktion einfach als static.
    Hallo,
    das hier ist eigentlich mehr VB-Forum als C#...aber egal :D

    Du musst nur eine Instanz der Klasse erstellen, mit der kannst du dann die Methode nutzen:
    Functions fkt = new Functions();
    fkt.Writter("Inhalt", "Dateiname", "Pfad");
    Ich würde allerdings die Methode statisch gestalten, sodass man keine Instanz braucht:
    Functions.Writter("Inhalt", "Dateiname", "Pfad");
    public static void Writer(...

    Übrigens, gucke dir mal die Methode File.WriteAllText an.
    msdn.microsoft.com/de-de/libra…io.file.writealltext.aspx
    ui das ging ja flott =9
    Danke an all die Hilfreichen Beiträge,

    ich habe es nun so gemacht das ich in der Function.cs zu public static void Writter gemacht habe.

    aber:



    Ich glaube fast das ich dennoch eine Instanz anlegen muss oder nicht?

    Edit:

    Mein Fehler.. hatte kein Public, sondern nur static..

    sorry

    Fire88 schrieb:

    Edit:

    Mein Fehler.. hatte kein Public, sondern nur static..

    sorry


    habe es extra nochmals alles durchgeschat und gesehen das in der Functions.cs nur "static void Writter(string text, string Datei_name, string path)"
    stand und noch kein Public steht.

    Besten dank an euch für die schnelle Hilfe und vor allem für die Gute Hilfe=)