Entwickler-Ecke

C# - Die Sprache - Kann nicht auf Objekt zugreifen


storestore - Fr 02.09.11 22:42
Titel: Kann nicht auf Objekt zugreifen
Hallo,
wieso kann ich nicht auf das Objekt Kreis zugreifen?

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GeometricObjectsSolution
{
    public class circle
    {
       circle kreis = new circle();

    }
}

Wenn ich kre kommt nix von kreis. Selbst wenn ich kreis eingebe kommt nix!!!
lg storestore


Moderiert von user profile iconTh69: Titel geändert: 'C#' entfernt, da wir hier offensichtlich im C# Forum sind ;-)


Trashkid2000 - Fr 02.09.11 23:01

Hallo storestore,
kannst Du mal bitte Deine Frage so formulieren, dass man versteht, was Du meinst?

Also Du hast eine Klasse "circle" (die eigentlich groß geschrieben wird).
Und innerhalb der Klasse definierst Du eine lokale Variable "kreis", was ein circle ist. UND?

Wo ist denn das Problem, bzw. wo versuchst Du denn, auf deine Variable kreis zuzugreifen?


Christian S. - Fr 02.09.11 23:04

Die Standardsichtbarkeit von Klassenmembern ist private, also ist kreis nur innerhalb der circle-Klasse sichtbar. Meintest Du das? Denn so richtig kapiert habe ich auch nicht, was Du meinst ;-)

btw: Klassennamen werden vorne groß geschrieben, also Circle statt circle


storestore - Fr 02.09.11 23:05

Hallo, ich wollte sowas machen

C#-Quelltext
1:
2:
 Circle kreis;
    kreis = new Circle()

aber ich habe gemerkt das ich nicht auf kreis zugreifen kann.
Ich wollte es genau so machen wie in einem openbook beschrieben
Editt: http://openbook.galileocomputing.de/visual_csharp_2010/visual_csharp_2010_03_002.htm#mj413baf1980431a0399bd67352d923220


Th69 - Sa 03.09.11 09:24

Hallo storestore,

das ist im Buch wirklich etwas unglücklich formuliert, denn die zweizeilige Variante gilt nur für lokale Variablen (d.h. innerhalb einer Methode) und nicht direkt bei der Initialisierung als Klassenmember.

Gemeint ist im Buch aber auch, daß du in einer externen Methode (z.B. Main) diese Variable anlegst (und nicht innerhalb der Klasse selbst - dies ergibt ja auch keinen Sinn und bringt einen Laufzeitfehler (StackOverflowException): ein Objekt kann sich ja nicht selbst enthalten).


storestore - Sa 03.09.11 12:34

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo storestore,

das ist im Buch wirklich etwas unglücklich formuliert, denn die zweizeilige Variante gilt nur für lokale Variablen (d.h. innerhalb einer Methode) und nicht direkt bei der Initialisierung als Klassenmember.

Gemeint ist im Buch aber auch, daß du in einer externen Methode (z.B. Main) diese Variable anlegst (und nicht innerhalb der Klasse selbst - dies ergibt ja auch keinen Sinn und bringt einen Laufzeitfehler (StackOverflowException): ein Objekt kann sich ja nicht selbst enthalten).

Hi,
das habe ich mir auch gedacht und ausprobiert und es hat funktioniert. Nur das Problem ist das stand echt nicht drin. Ich wollte es halt genauso wie im Buch machen. Also danke, ne! ;)

mfg storestore