C 11:類似 C# 的屬性?
C# 語法允許簡潔的字段 getter 和 setter。 C 11 引入了命名類別和 lambda,提供了類似的解決方案。
在 C 11 中實作 C# 屬性
要在 C 11 中模擬 C# 屬性,您可以使用未命名類別和會員存取功能。考慮以下實作:
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;
};
用法範例
Foo foo;
foo.alpha = 10;
cout 此方法提供了類似 C# 的語法,用於使用自動產生的名稱來取得和設定屬性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3