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 !!
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.
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 ?
Ist besser. Du sagt also, dass kein Objekt erzeugt wird. Woher weist du das? Hast du dem Header Objekt schon mal einen Konstruktor verpasst und dich da mit einem Breakpoint rangeklemmt?
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 ?
Sieh Dir mal den Gültigkeitsbereich von "objzse" an.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.