Warum kann ich nicht mit dem as-Schlüsselwort für eine Struktur?

Ich definiert mit der folgenden Struktur:

public struct Call
{
    public SourceFile caller;
    public SourceFile callee;

    public Call(SourceFile caller, SourceFile callee)
    {
        this.caller = caller;
        this.callee = callee;
    }
}

Später, ich weisen Sie auf die Tag-Eigenschaft eines anderen Objekts:

line.Tag = new Call(sf1, sf2);

Aber wenn ich versuche zum abrufen der Tag-Eigenschaft, etwa so,

Call call = line.Tag as Call;

Visual Studio bietet die folgenden compile-time Fehlermeldung:

Betreiber muss innerhalb einer
Referenz-Typ oder null-Werte zulässt Typ

Was ist der Sinn davon? Und wie kann ich es lösen?

  • Warum haben Sie gemacht, dass ein struct? Mutable structs sind eine schlechte Idee.
  • Und die Struktur ist erhalten boxed für die Speicherung in einer Tag-Eigenschaft sowieso...
  • Hmm es müssen nicht verändert werden. Aber ich denke, ich sollte besser mit uns eine Klasse für diesen Zweck.
InformationsquelleAutor | 2010-12-09
Schreibe einen Kommentar