Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Tiborius

Frischling

  • »Tiborius« ist der Autor dieses Themas

Beiträge: 42

Wohnort: Alsdorf

Beruf: Arbeitnehmer

  • Private Nachricht senden

1

22.04.2015, 11:31

Tiborius hat Fragen und Probleme zu C#

Hi

da ich erst mit dem Programmieren angefangen habe wird hier und da bestimmt ein Problem oder eine Frage kommen. Da ich nicht für jedes Problem ein Thema aufmachen will, habe ich mal nur eins auf gemacht wo dann nach und nach meine Fragen kommen werden.

Kommen wir zur ersten Frage:

Ich arbeite mit Visual Studio. Dort habe ich einen Button (nennen wir in Button1).
Button1 hat die Eigenschaft "(Name) = cmdButton1" das steht auch so im Quelltext.

C#-Quelltext

1
private void cmdButton1_Click


Wenn ich den Button aber die Eigenschaft "(Name) = cmdButton2" gebe und dann doppelkick auf den Button mache damit ich in den Quelltext komme dann hat er weiterhin den alten Namen.

Ist das normal das er das nicht automatisch ändert?

Gruß Tiborius

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Tiborius« (22.04.2015, 12:32)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

22.04.2015, 11:36

Ja. Das ist auch so gewollt. Wenn Du den Namen des Click-Handlers ändern willst, geh in das andere Tab. Das Eigenschaften-Fenster hat oben noch ein Tab mit einem Blitz, da sind die ganzen Events verknüpft. Ein Event wird nur beim ersten Doppelklick angelegt und behält danach seinen Namen. Wenn du den Namen ändern willst, musst Du ihn im Event-Tab ändern - und im Code.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Tiborius

Frischling

  • »Tiborius« ist der Autor dieses Themas

Beiträge: 42

Wohnort: Alsdorf

Beruf: Arbeitnehmer

  • Private Nachricht senden

3

22.04.2015, 12:15

ok danke

mein Hirn weiß nicht was im Buch gemeint ist.

Es geht um "Gültigkeitsbereich"

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public partial class Form1 : Form
{
...
int Mx = 0;

private void cmdAnzeigen1_Click(...)
{
int x = 0;
Mx = Mx + 1;
x = x + 1;
lblAnzeige.Text="x: " + x + "Mx: " + Mx;
}

private void cmdAnzeigen2_Click(...)
{
int Mx = 0;
Mx = Mx + 1;
lblAnzeige.Text="Mx: " + Mx;
}
}


Was sagt mir das genau. Ich versteh irgend wie nicht was mir das int Mx = 0 unter class Form1 sagen will.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Tiborius« (22.04.2015, 12:30)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

22.04.2015, 12:37

"x" ist nur in der Methode "cmdAnzeigen1_Click" gültig. Es existiert nur dort und ist nur dort verwendbar - der Gültigkeitsbereich ist also auf die Methode beschränkt. "Mx" hingegen ist ein Member der Klasse und somit in allen Methoden gültig und verfügbar. Es ist eine Ebene höher deklariert und der Gültigkeitsbereich ist daher die gesamte Klasse. Du könntest auf "x" in "cmdAnzeigen2_Click" nicht zugreifen, da sie dort nicht deklariert wurde in einem anderen Block gültig ist. Der Name ist also Programm und sagt aus, in welchem Bereich eine Variable gültig ist und verwendet werden kann.
Kurz kann man sagen, dass der Gültigkeitsbereich das paar geschweifter Klammern ist (auch als "Block" bekannt), in welchem eine Funktion/Variable deklariert wurde (inkl. alle darin untergeordnete Blöcke).
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Tiborius

Frischling

  • »Tiborius« ist der Autor dieses Themas

Beiträge: 42

Wohnort: Alsdorf

Beruf: Arbeitnehmer

  • Private Nachricht senden

5

22.04.2015, 12:47

C#-Quelltext

1
2
3
4
5
private void cmdAnzeigen2_Click(...)
{
Mx = Mx + 1;
lblAnzeige.Text="Mx: " + Mx;
}


Also könnte ich int Mx = 0 auch weg lassen bei Anzeige2 weil ich es in Form1 schon drin habe?

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

6

22.04.2015, 12:56

Theoretisch ja. Wenn du es aber weg lässt und änderst, dann änderst du die Variable in Form1. So änderst du sie nur für Anzeige2.

Tiborius

Frischling

  • »Tiborius« ist der Autor dieses Themas

Beiträge: 42

Wohnort: Alsdorf

Beruf: Arbeitnehmer

  • Private Nachricht senden

7

22.04.2015, 13:02

ok das bringt mich weiter. Großen dank

pouk_

Frischling

Beiträge: 64

Beruf: Schüler

  • Private Nachricht senden

8

22.04.2015, 13:09

Vielleicht ist es nur ein Formatierungsfehler beim Kopieren, aber falls nicht, könntest du dir angewöhnen Einrückungen zu benutzen

C-/C++-Quelltext

1
2
#include <stdlib.h>
main(){for(;;malloc(1024));} // dead

Tiborius

Frischling

  • »Tiborius« ist der Autor dieses Themas

Beiträge: 42

Wohnort: Alsdorf

Beruf: Arbeitnehmer

  • Private Nachricht senden

9

22.04.2015, 13:12

ich habe das aus dem buch kopiert. ich werde es aber nächstes mal beachten

Tiborius

Frischling

  • »Tiborius« ist der Autor dieses Themas

Beiträge: 42

Wohnort: Alsdorf

Beruf: Arbeitnehmer

  • Private Nachricht senden

10

23.04.2015, 11:21

Ist das normal das man irgend wann nichts mehr versteht?
ich lese mir gerade die verschiedenen schleifen durch und wenn ich die eine gelesen habe dann weiß ich schon gar nicht mehr was die andere kann^^

Wie macht ihr das wenn ich mit einem Buch lernt? Habt ihr da Tipps?

Werbeanzeige