Heim  >  Artikel  >  Backend-Entwicklung  >  Kann C 11 C#-ähnliche Eigenschaften mit unbenannten Klassen und Lambdas erreichen?

Kann C 11 C#-ähnliche Eigenschaften mit unbenannten Klassen und Lambdas erreichen?

Susan Sarandon
Susan SarandonOriginal
2024-10-28 03:08:02805Durchsuche

 Can C  11 Achieve C#-Like Properties with Unnamed Classes and Lambdas?

C 11: Eigenschaften wie C#?

Die C#-Syntax ermöglicht prägnante Feld-Getter und -Setter. C 11 führt benannte Klassen und Lambdas ein und bietet eine ähnliche Lösung.

Implementieren von C#-Eigenschaften in C 11

Um C#-Eigenschaften in C 11 zu emulieren, können Sie unbenannte Klassen verwenden und Mitgliederzugriffsfunktionen. Betrachten Sie die folgende Implementierung:

<code class="cpp">struct Foo {
    struct {
        int value;
        auto &operator=(const int &i) -> decltype(auto) { return value = i; }
        auto operator()() const -> decltype(auto) { return value; }
    } alpha;

    struct {
        float value;
        auto &operator=(const float &f) -> decltype(auto) { return value = f; }
        auto operator()() const -> decltype(auto) { return value; }
    } bravo;
};</code>

Verwendungsbeispiel

<code class="cpp">Foo foo;
foo.alpha = 10;
cout << foo.alpha() << endl;</code>

Dieser Ansatz bietet eine C#-ähnliche Syntax zum Abrufen und Festlegen von Eigenschaften mit automatisch generierten Namen.

Das obige ist der detaillierte Inhalt vonKann C 11 C#-ähnliche Eigenschaften mit unbenannten Klassen und Lambdas erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn