Visual Studio, Problem Objekt v. 2 Klassen erzeugen

Gast #722301
Moin !

Ich versuche mi Visual Studio ein Objekt zu erzeugen. Normalerweise sehe 
da kein Problem mit, aber es hakt irgendwie...!

Ich habe zwei Klassen jeweils eine in einem separaten Dokument.

Programm.cs dort befindet sich public partial class Form1 : Form {}
Header.cs dort befindet sich public class Header {}

Jetzt möchte ich gerne ein Objekt in der Klasse p p c Form1: Form {}
in der Methode public Form1{} erstellen.

Die Idee ist
public Form1 {
Header test = new Header(); }

Theoretisch sollte test mein Objektvariable der Klasse Header sein!
Aber es wird kein Objekt erzeugt!!

Was mache ich falsch ???

Gruss Bernd und Danke für die Mithilfe !!
Gast
Mahlzeit...
Hat niemand von Euch ne Idee, wie ich mein Problem lösen kann?

Fehlen irgendwelche Information oder soll ich das Problem besser 
beschreiben?

Gruss Bernd
Deine Beschreibung klingt ein bischen konfus.
Zumindest ich kann damit so gut wie nichts anfangen.

Alte Regel: Bechreibe nicht deinen Code, sondern zeig ihn
her!
Wenn der Code zu lang ist um gepostet zu werden, dann erzeuge
ein möglichst kurzes Demobeispiel, welches denselben Fehler
zeigt.

Woher weist du eigentlich, dass das Objekt nicht erzeugt wird.
Was sagt der Debugger? Hast du schon mal einen Breakpoint auf
Header test = new Header();
gesetzt? Kommt das Programm dort vorbei?

> Die Idee ist
> public Form1 {
> Header test = new Header(); }

Was soll das sein? Das kann keine Methode sein, weil da die Klammern
für das nicht vorhandene Funktionsargument fehlen. Ein Property
kanns aber auch nicht sein.


Poste bitte deinen tatsächlichen Code.
Gast
OK...auf eine Neues.
Hier die beiden Programmteile...

Quelltext: Programm.cs
1
namespace Test
2
{
3
    public partial class Form1 : Form
4
    {
5
        public Form1()
6
        {
7
           InitializeComponent();
8
           Header objzse = new Header();
9
        }
10
}

Quelltext: Header.cs
1
namespace Test
2
{
3
    public class Header
4
    {  
5
       // noch ohne Inhalt 
6
    }
7
}

Ich das so besser ?
Gast
ok... so habe ich den Konstruktor ins Leben gerufen..

Quelltext: Header.cs
1
namespace Test
2
{
3
    public class Header
4
    {  
5
       public Header()      // Konstruktor
6
       {
7
         // ohne Inhalt 
8
       }
9

10
    }
11
}


Quelltext: Programm.cs
1
namespace Test
2
{
3
    public partial class Form1 : Form
4
    {
5
        public Form1()
6
        {
7
           InitializeComponent();
8
           Header objzse = new Header();
9
        }
10

11
        private void Form1_Load(object sender, EventArgs e)
12
        {
13

14
            // Hier will ich das Objekt "objzse" nutzen !
15
            // Compiler meldet: " the name objzse does not exist in the 
16
            // current context "
17
        }
18

19
}

Was kann das sein ?
Gast
Ich hab irgendwann mal Visual Basic gemacht, ohne .NET, und ich glaub, 
da musste man Objekte ganz besonders zuweisen:
1
Set ObjektVariable = new Objekt
Bernd wrote:

>         private void Form1_Load(object sender, EventArgs e)
>         {
>
>             // Hier will ich das Objekt "objzse" nutzen !
>             // Compiler meldet: " the name objzse does not exist in the
>             // current context "
>         }

Das kann schon sein, dass du das Objekt hier benutzen willst.
Geht aber nicht, denn

>        public Form1()
>        {
>           InitializeComponent();

der Lebensbereich dieses Objektes beginnt genau hier ...

>           Header objzse = new Header();

... und endet genau hier.
Danach gibt es das Objekt schlicht und ergreifend nicht mehr.

        }

> Was kann das sein ?

Fehlende Kenntnisse deinerseits. objsze muss ein klassenlokaler
Member sein.
1
namespace Test
2
{
3
    public partial class Form1 : Form
4
    {
5
        private Header objsze;
6

7
        public Form1()
8
        {
9
           InitializeComponent();
10
           objzse = new Header();
11
        }
12

13
        private void Form1_Load(object sender, EventArgs e)
14
        {
15

16
            // Hier will ich das Objekt "objzse" nutzen !
17
            // Compiler meldet: " the name objzse does not exist in the 
18
            // current context "
19
        }
20

21
}

Ich kann mich nur immer wieder wiederholen (und schön langsam
wird das ehrlich gesagt fad): Besorg dir Literatur.
Ich weiss nicht warum so viele Leute glauben sie könnten eine
Programmiersprache ohne entsprechende Unterlagen lernen.
In Deutschland brauchst du sogar einen Befähigungsnachweis ehe
man das erste mal alleine aufs Klo darf. Nur Babys produzieren
und Computer kaufen darf anscheinend jeder ohne irgendwas.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.