プロパティで実装することができると思うのですが、Swiftのように再利用する時に綺麗に描きたいです。
具体的なものとしては以下のSwiftコードをC#で実装したいです。
(これくらいならプロパティで十分ですが...)
コードがあれば嬉しいですが、機能の名前や、実装手順だけでも十分です。
よろしくお願いします。
swift
1@propertyWrapper 2struct Natural { 3 private var number = 0 4 var wrappedValue: Int { 5 get { return number } 6 set { number = newValue < 0 ? -newValue : newValue } 7 } 8} 9 10struct WrapperTest { 11 // こんな感じでシンプルに実装したい 12 @Natural var param: Int 13} 14 15var t = WrapperTest() 16t.param = -3 17t.param // <- 3 18 19t.param = 7 20t.param // <- 7 21 22t.param -= 10 23t.param // <- 3
調べたこと
アスペクト指向というものがヒットしたので、C#での実装を調べたところ、
が見つかりました。
しかしこれらでは、他のクラスを継承できなくなることや、デバッグ向きであるためかパフォーマンスの低下が気になりました。
(あと、Swiftに比べて実装の量が多いことも)
ソースジェネレーター。
回答2件
あなたの回答
tips
プレビュー