![]() |
Delphi Property nach C# übertragen
Wie realisiert man folgerndes Konstrukt in C#:
Delphi-Quellcode:
property Items[Index: Integer]: TCard read GetItem write SetItem;
Delphi-Quellcode:
Ich probiere es gerade so:
function TMemoryField.GetItem(Index: Integer): TCard;
begin Result := FCards.Items[Index]; end; procedure TMemoryField.SetItem(Index: Integer; const Value: TCard); begin FCards.Items[Index] := Value; end;
Code:
Aber da will er nach get und set eine Semikolon haben. :gruebel:
public Person Item(int Index, Person person)
{ get { return innerList[Index]; } set { innerList[Index] = person; } } |
Re: Delphi Property nach C# übertragen
Code:
public Person Item[int index]
{ get { return innerList[Index]; } set { innerList[Index] = person; } } |
Re: Delphi Property nach C# übertragen
Äh, nein. Das bringt 13 Fehler.
Code:
Zeile 1 (eckige Klammer): Error 1 Bad array declarator: To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type. C:\Dokumente und Einstellungen\mp\Eigene Dateien\Visual Studio 2008\Projects\Container_Klasse\Container_Klasse\Pe rson.cs 110 27 Container_Klasse
public Person Item[int index]
{ get { return innerList[index]; } set { innerList[Index] = person; } } Zeile 1 (int): Error 2 Array size cannot be specified in a variable declaration (try initializing with a 'new' expression) C:\Dokumente und Einstellungen\mp\Eigene Dateien\Visual Studio 2008\Projects\Container_Klasse\Container_Klasse\Pe rson.cs 110 28 Container_Klasse Zeile 1 (index): Error 3 Invalid expression term 'int' C:\Dokumente und Einstellungen\mp\Eigene Dateien\Visual Studio 2008\Projects\Container_Klasse\Container_Klasse\Pe rson.cs 110 32 Container_Klasse Zeile 4: Error 5 Invalid token '{' in class, struct, or interface member declaration C:\Dokumente und Einstellungen\mp\Eigene Dateien\Visual Studio 2008\Projects\Container_Klasse\Container_Klasse\Pe rson.cs 113 13 Container_Klasse Zeile 5: Error 6 Invalid token '[' in class, struct, or interface member declaration C:\Dokumente und Einstellungen\mp\Eigene Dateien\Visual Studio 2008\Projects\Container_Klasse\Container_Klasse\Pe rson.cs 114 33 Container_Klasse Zeile 5 (;): Error 7 Type expected C:\Dokumente und Einstellungen\mp\Eigene Dateien\Visual Studio 2008\Projects\Container_Klasse\Container_Klasse\Pe rson.cs 114 40 Container_Klasse Zeile 5 (;): Error 8 Invalid token ';' in class, struct, or interface member declaration C:\Dokumente und Einstellungen\mp\Eigene Dateien\Visual Studio 2008\Projects\Container_Klasse\Container_Klasse\Pe rson.cs 114 40 Container_Klasse Zeile 9 (=): Error 10 Expected class, delegate, enum, interface, or struct C:\Dokumente und Einstellungen\mp\Eigene Dateien\Visual Studio 2008\Projects\Container_Klasse\Container_Klasse\Pe rson.cs 118 34 Container_Klasse usw. |
Re: Delphi Property nach C# übertragen
Hi,
vielleicht so:
Code:
siehe auch: class Person : CollectionBase { ... public Person this(int index) { get { return((Person)List[index]); } set { List[index] = value; } } ... } ![]() Gruß |
Re: Delphi Property nach C# übertragen
Nein, nein. So sieht es bisher bei mir aus:
Code:
Mit den runden Klammer bei public Person Item(int index) will er wieder die Semikola hiter get und set haben.
class PersonenListe
{ private List<Person> innerList; public PersonenListe() { innerList = new List<Person>(); } public void Add(Person person) { innerList.Add(person); } public int Count { get { return innerList.Count; } } public Person Item(int index) { get { return innerList[index]; } set { innerList[index] = person; } } } |
Re: Delphi Property nach C# übertragen
Zitat:
Code:
public Person this[int index]
{ get { return ((Person)innerList[index]); } set { innerList[index] = value; } } |
Re: Delphi Property nach C# übertragen
Mag sein, lese oder überfliege den Artikel und den darauf folgenden.
Dort wird alles zum Thema erklärt. Gruß |
Re: Delphi Property nach C# übertragen
@Phoenix: Jupp, so geht es.
@AlterMann: Ich wollte es ohne der besagten Klasse aus dem Artikel machen. Das wäre jetzt ein weitere Ansatz, den ich mir mal angucken kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz