Nicht nehmen Sie die Adresse, Holen Sie sich die Größe, oder deklarieren Sie einen Zeiger auf einen verwalteten Typ

Ich habe ein gutes Stück der Forschung, aber bin nun fest, warum bin ich noch immer diesen Fehler. Ich habe ein struct mit folgenden Attributen:

struct Account
{
    //private attributes
    private double mBalance;
    private int mAccountNumber;
    private string mName;
    private string mDateCreated;
}

und versuche Folgendes zu tun:

class BankManager
{
    //private attributes
    private unsafe Account *mAccounts;
    private unsafe bool *mAccountsAvailable;
    private int mNumberAccounts;
}

Sogar nach dem einschalten meiner Klasse Konto um eine Struktur mit "unsicher" für die Attribute in der Klasse BankManager, und zu sagen, der compiler es verwenden kann, unsicheren code (im Eigenschaften -> Build), ich bin noch immer dieser Fehler bei

*mAccounts

Irgendwelche Ideen, warum? Ich bin mir ziemlich sicher, dass alle die Typen, die ich verwende in der struct sind legal, haben Pointer in c#. Vielen Dank im Voraus!

  • Warum willst du Zeiger verwenden? Es sieht aus wie BankManager haben Collection von Accounts.
  • Dies kann helfen: stackoverflow.com/questions/2559384/...
  • HINWEIS: für jeden, der will, zu betrachten Sie die Adressen stellen Sie sicher, Sie verstehen, was Los ist unter der Haube, BITTE sehen Sie sich diese zwei videos statt das Hirn zermartern auf dieser. (VIDEO 1: youtube.com/watch?v=h6aXzd1nTXQ ) (VIDEO-2: youtube.com/watch?v=mvieNUe9Urs ). Dies gab mir alles was ich wissen wollte. Ich kam aus einer C++ - hintergrund wurde unglaublich frustriert, wenn ich konnte nicht frei Blick auf die Speicher-Adresse mit dem watch-Fenster. Bei der Diskussion über Erinnerung, es ist so nützlich, um eine visuelle Verständnis über das, was da im hintergrund.
Schreibe einen Kommentar