![]() |
Selbstdefinierte Typen in c#
Eine kleine Frage: Diese "Konstruktion", wie sieht die in c# aus?
Delphi-Quellcode:
type
TMeinArray = array[0..5] of Integer; |
Re: Selbstdefinierte Typen in c#
hallo,
in c# sieht es so aus:
Delphi-Quellcode:
raik
int[] MeinArray = new int[5];
|
Re: Selbstdefinierte Typen in c#
Sowas brauchst du in c# nicht mehr. ;) Bzw.: Es gibt in .Net keine Arrays mehr, so wie man sie aus der Win32-Zeit kennt.
Eindimensionaler Integer-Array:
Code:
Wie du siehst sind sie auch ohne Extranamen vollständig zuweisungskompatibel (In delphi32 brauchst du ja diese Hilfsttypen).
public enum ArrayInit
{ MitWerte, OhneWerte } class SomeClass { int[] miep; int[] ArrayMitWerten() { return new int[5] {1, 2, 3, 4, 5}; } int[] ArrayOhneWerte() { return Array.CreateInstance(typeof(int), 5) as int[]; } public SomeClass(ArrayInit arrayInit) { if(arrayInit == ArrayInit.MitWerte) miep = ArrayMitWerten(); else if(arrayInit == ArrayInit.OhneWerte) miep = ArrayOhneWerte(); } } Ich weiß noch nichtmal, ob es sowas wie Typennamen für arrays in c# überhaupt gibt (Ich habe es nie vermisst :mrgreen: ) |
Re: Selbstdefinierte Typen in c#
Zitat:
Delphi-Quellcode:
und nicht dem, was ich will, oder?
var
MeinArray: array[0..5]; |
Re: Selbstdefinierte Typen in c#
Du solltest dir lieber überlegen WAS du willst.
Arrays machen keinen "Spass", das kann ich dir jetzt schon sagen. ;) In 50% der Fälle ist eine eigene Implementierung von IList & ICollection viel sinnvoller und praktischer. In weiteren 49% wären Listen oder Dictionaryies besser geeignet. Der faule Weg würde über CollectionBase und dem TypedCollection Wizzard aus SharpDevelop führen. Wenn du per foreach durch eine Collection (,HashList, Dictionary,...) iterierst dürftest du kaum bis keine Geschwindigkeitsunterschide zu einem Array feststellen. (Der Enumerator "weiß" ja genau was noch kommt :) ) Nur bei direkten Zugriffen auf ein Element ist der Array flinker.* Arrays machen aber unter .Net (genau wie unter Delphi32) deinen Code sehr schnell sehr hässlich. ;) Sie machen IMHO nur Sinn als Rückgabewerte von Funktionen (gut zu sehen an vielen Methoden aus Reflection ;) ). *Wobei eine Ableitung von CollectionBase oder ArrayList einen internen Index führt und somit auch fast genauso schnell einzelne Elemente holt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 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-2025 by Thomas Breitkreuz