AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi type nach c#

Ein Thema von EWeiss · begonnen am 5. Nov 2014 · letzter Beitrag vom 6. Nov 2014
 
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: Delphi type nach c#

  Alt 5. Nov 2014, 09:54
Nee, das geht so nicht.

So wäre es straightforward.
Code:
class MyClass
{
  public int[] GetWaveData { return new int16[1024]; }
}
Wenn Du auf deinen 1024 Words bestehst, dann kannst Du das auch in eine Klasse packen und verhindern, das man den Puffer verändert;
Code:
class WaveData
{
  private readonly Int16[] data = new Int16[1024];
  public Int16[] Data {get{return data;}}
}
Dafür ein Unittest und fertig.
Code:
[Test]
public void WaveDataSizeTest()
{
  var unit = new WaveData();
  Assert.AreEqual(unit.Data.Length, 1024);
}
Alternativ geht es auch mit unsafe:
Code:
internal unsafe struct WaveData
{
    public fixed Int16 Data [1024];
}

internal class MeineClass
{
    public unsafe WaveData GetWaveData()
    {
        var myWaveData = new WaveData();
        myWaveData.Data[0] = 3;
        return myWaveData;
    }
}
Dann musst Du mit der Option '/unsafe' kompilieren bzw. dies so in den Projekteigenschaften einstellen.

Ich persönlich würde eine der ersten beiden Varianten wählen. Ich weiß nicht, ob die 1024 Words in Stein gemeißelt sein müssen. Imho reicht es, wenn 1024 Elemente geliefert werden und dann -wie es sein sollte- über 'Length' iteriert wird.

Es wäre aber natürlich denkbar, das an 1000 Stellen im Code implizit diese Größe vorausgesetzt wird, dann Variante #2.

Der Nachteil/Das Besondere von #3 ist der, das der Speicherbereich nicht mehr verändert wird, d.h. die Adresse ändert sich nicht mehr.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 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