Fragensteller
With und ReDim aus VB in VC#

Frage
-
Ich bin seit kurzem von VB 2005 EE zu VC# 2005 EE übergegangen da ja XNA Game Studio nur für VC# ist. Nun bräuchte ich einfach aus faulheit mal ein With da ich ein objekt in einem arrayeintrag hab dem ich nen haufen sachen zuweisen muss.
z.b. in VB wars
With Projectiles(0) { <-- weiß nicht obs die klammer war, ist auch egal
.Speed = 5
.TurnSpeed = 3
.Damage = 10
}
geht sowas auch in C# ? Und ein ReDim für ein Array hab ich auch noch nicht gefunden, das brauch ich sogar dringender.
Alle Antworten
-
naja soweit bin ich nun auch schon gekommen, ich hab leider vergessen hinzuschreiben dass ich das ReDim Preserve brauche, damit halt auch alles was schon drin is auch drin bleibt wenn man das Array halt vergrößert das hinten neue freie plätze entstehen.
-
Hi
Aha, so ist dass.
Es ist so, eine äquivalente Variente gibt es in .NET nicht, aber versuche es doch mal so:
Int32[] arr = new Int32[12]; //Deklaration
int32[] tmp = new Int32[123]; //Neues Array mit der neuen Grösse
Array.Copy(arr,tmp,arr.GetLength()); //Altes Arrary in das neue kopieren; letzter Parameter entsprichte der alten Länge!!
arr = tmp; //Altes Array überschreiben!!
Und fertig ist der ReDim Preserve!!
Gruss
FreakMan
-
Du kannst die Assembly Microsoft.VisualBasic.dll referenzieren und dann mit folgendem Konstrukt arbeiten:
Quellcodeabschnittusing
Microsoft.VisualBasic.CompilerServices;byte[] bytes = new byte[32];
bytes = (byte[])Utils.CopyArray((Array)bytes, new byte[40]);
Dann hast Du genau das, was ReDim macht.
--
MfG,
Daniel Kuppitz