Autor |
Beitrag |
mr.eddy
      
Beiträge: 23
|
Verfasst: So 13.01.08 23:32
ist es möglich
C#-Quelltext 1:
| mylabel.Tag = new Point(x, y); |
von point wieder in z.B. int zu konvertieren sodaß man diesen wert in einem 2 dimensionalen array nutzen kann?
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 13.01.08 23:39
In einem 2d-Array kannst Du doch einfach x und y verwenden 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
mr.eddy 
      
Beiträge: 23
|
Verfasst: So 13.01.08 23:59
ja aber wenn ich mehere labels auf einmal erstelle kann ich die koordinate ja nur im tag mitgeben und via normale variable geht da nur eine mit
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mo 14.01.08 00:18
Tag ist vom Typ Object, da kannst Du jeden beliebigen Datentyp drin speichern, auch einen Punkt.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Mo 14.01.08 14:52
@mr.eddy: Tag-Lösungen klingen immer nicht gerade optimal  . Leite doch von Label ab und füge eine neue Eigenschaft hinzu, sind nur ein paar Zeilen:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| class MyLabel : Label { public Point ArrayPosition { get; set; } } |
|
|
mr.eddy 
      
Beiträge: 23
|
Verfasst: Mo 14.01.08 15:44
was bewirkt den get und set ?
sry bin noch einsteiger
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mo 14.01.08 15:48
Khabarakh hat folgendes geschrieben: | @mr.eddy: Tag-Lösungen klingen immer nicht gerade optimal . |
"immer" ist ein großes Wort  Das sollte man von Fall zu Fall entscheiden und für ein einfaches 4-gewinnt dürfte das IMHO vollkommen ausreichen.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
mr.eddy 
      
Beiträge: 23
|
Verfasst: Mo 14.01.08 15:54
IMHO ? xD (k hat sich erledigt)
|
|
golgol
      
Beiträge: 58
Win XP Prof. / Linux
C# (VS 2005)
|
Verfasst: Mo 14.01.08 16:00
mr.eddy hat folgendes geschrieben: | was bewirkt den get und set ?
sry bin noch einsteiger |
Das kommt aus der Objektorientierten Programmierung (OOP): Variablen einer Klasse sind für gwöhnlich von aussen nicht zugreifbar (weder zum Lesen noch zum Schreiben). Du musst also für jede Klassenvariable eine Methode schreiben, die dir den Lese- (sog. getter-Methoden(get)) oder den Schreibzugriff (sog. setter-Methoden (set)) ermöglichen. Bei C# wird das normalerweise über Properies gemacht, die da vieles vereinfachen und eine echt nette Sache sind.
Du solltest dir vieleicht zunächst was über die OOP durchlesen bevor du mit C# weiter machst, sonst stößt du früher oder später auf immer mehr Begriffe die du nicht kennst, und das kann echt hinderlich sein. Schau dir z.B. das mal bei Wikipedia an.
P.S.: IMHO = In my humble opinion
|
|
mr.eddy 
      
Beiträge: 23
|
Verfasst: Mo 14.01.08 16:18
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Mo 14.01.08 20:50
Christian S. hat folgendes geschrieben: | Das sollte man von Fall zu Fall entscheiden und für ein einfaches 4-gewinnt dürfte das IMHO vollkommen ausreichen. |
Das Argument, dass es für einen Anfänger vlt. leichter ist, hätte ich noch verstanden (wobei er es natürlich eher früher als später sowieso lernen muss), aber vom Verfahrens-Optimum bin ich immer noch überzeugt  . Ich schreibe doch wirklich lieber zwei Zeilen mehr, anstatt eine Property mit einem nichtsaussagenden Namen, der ich einfach vertraue, dass sie das Richtige enthält[meta]Ein 3rd-Party-Control, das intern Tag benutzt... DAS wäre mal etwas Lustiges *g*[/meta], ständig zu casten. Sonst kann ich ja gleich zu den untypisierten Pointern zurück  . Eine Definition des Optimums wäre ja das Ziel, dass eine zweite Person (z.B. der Herr Lehrer ^^ ) beim Überfliegen des Codes seinen Sinn erfassen kann, und das trifft bei solchen "kleinen Schweinereien" wie Tag keinenfalls mehr zu.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mo 14.01.08 21:07
Khabarakh hat folgendes geschrieben: | Ich schreibe doch wirklich lieber zwei Zeilen mehr, anstatt eine Property mit einem nichtsaussagenden Namen, der ich einfach vertraue, dass sie das Richtige enthält[meta]Ein 3rd-Party-Control, das intern Tag benutzt... DAS wäre mal etwas Lustiges *g*[/meta], ständig zu casten. |
Es handelt sich ja nicht um ein 3rd-Parte-Control, sondern um das Standard-Label. Und ein 4gewinnt ist doch irgendwie so übersichtlich, dass man sicher sein kann, was in der Eigenschaft steht. Und wieso "ständig casten"? In diesem Fall reicht einmal.
Klar, wenn das ein "richtiges" Projekt wäre, würde man das nicht über die Tag-Eigenschaft machen. Aber dann würde man sicherlich auch eine Klasse einführen, welche die ganze Spiellogik implementiert, eine Komponente, welche das Spielfeld darstellt (und damit es hübsch aussieht vielleicht gar keine Labels verwendet), etc.
Es ist aber nun mal ein "Schreib's mal eben runter"-Projekt und da benutz ich die Tag-Eigenschaft, die in diesem Fall gar nicht so schlimm ist (siehe oben).
Khabarakh hat folgendes geschrieben: | Sonst kann ich ja gleich zu den untypisierten Pointern zurück . |
Wir wollen mal nicht übertreiben.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Di 15.01.08 12:18
Christian S. hat folgendes geschrieben: | Khabarakh hat folgendes geschrieben: | Sonst kann ich ja gleich zu den untypisierten Pointern zurück . | Wir wollen mal nicht übertreiben. |
Was stellt dann deiner Meinung nach TComponent.Tag dar  ?
Naja... in einem eigenen Projekt, egal wie klein, würde ich auf jeden Fall die Property einfügen, wenn noch eine zweite Person den Quelltext zu sehen bekommt. Bevor aber selbst der Lehrer den Quelltext nicht mehr versteht, bleiben wir wohl wirklich lieber bei Tag.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Di 15.01.08 15:13
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|