はこの短い例を考えてみましょうそれを設定することができますMain()
に設定します。これはなぜ可能ですか?は、Get-専用に取得/設定プロパティをオーバーライドするまだあなたが
答えて
、それはあなたが派生クラスで読み取り専用にmakkingことにより、getterメソッドをオーバーライドしていることが判明:
public override bool Property => property;
しかし、あなたが設定したときに、まだそう、セッターを継承しますプロパティでは、基本クラスのsetterメソッドにはまだアクセスできます。
言語では、ここで達成しようとしていることを実行することはできません。 Liskov Substitution Principleでは、派生クラスを基底クラスが期待される場所に置き換える必要があります。そのプロパティを保持するには、基本クラスインタフェースのアクセス可能なすべてのメンバーが存在し、派生クラスでアクセス可能でなければなりません。生成されたCILコードを見ることによって
コンパイラはなぜ警告やエラーを出さないのですか?おそらく監督ですか? –
@DomnWerner - あなたが選んだ構文では、セッターメソッドをオーバーライドしようとは完全にはっきりしていませんが。 – hoodaticus
私はゲッターだけをオーバーライドしていると言っていますか?私が財産そのものを上書きしていたことは私の理解であった。 –
- 1. Moqで読み取り専用プロパティを設定するには?
- 2. 読み取り専用のプロパティによるスウィフトプロトコル設定可能なプロパティ
- 3. ファイルの読み取り専用プロパティを設定する
- 4. JavaFxプロパティで読み取り専用を設定する
- 5. 読み取り専用プロパティを設定できません
- 6. EFは私が設定したプロパティをオーバーライドしています
- 7. 設定フィールドは{取得または設定し;}プロパティ
- 8. 同じ値を持つ読み取り専用列で読み取り専用プロパティをオーバーライドします。
- 9. ベースクラスのreadonlyプロパティを設定またはオーバーライドする
- 10. パブリックreadonlyフィールドv.s.取得専用プロパティ
- 11. C#プロパティ変数に問題がある(取得と設定)
- 12. 読み取り専用状態であるため、オブジェクト「ID」のプロパティを設定できません。
- 13. このプロパティは読み取り専用であり、設定することはできません
- 14. テキストボックスの読み取り専用プロパティをtrueまたはfalseに設定する方法
- 15. C# "オブジェクト参照がオブジェクトのインスタンスに設定されていません" Get Type/Getプロパティを取得
- 16. プロパティのプロパティの属性を取得または設定する方法
- 17. コンストラクタで設定されたプロパティがプロトタイプのプロパティをオーバーライドします
- 18. 読み取り専用でフラッシュドライブを設定するには?
- 19. フローによってまだサポートされていないプロパティの取得/設定
- 20. プロパティの取得と設定
- 21. self.image.frame.width = 20ギブ専用プロパティのエラーを取得する
- 22. React onChangeが設定されていますが、まだ入力は読み取り専用です
- 23. プロパティに割り当てることができません: 'b0'は取得専用のプロパティです
- 24. 読み取り専用プロパティ
- 25. 読み取り専用プロパティ
- 26. まだwebdriver.chrome.driverを取得しても、そのプロパティを設定しても例外が設定されません。
- 27. 利用可能なすべてのプロパティ(JS)の取得/設定
- 28. REST GET APIで特定のプロパティのみを取得する
- 29. ネストされたプロパティ値を取得/設定します
- 30. 読み取り専用自動対(読み取り専用)プロパティ
これを上書きしないで、 'new 'とマークしてください。 –
@MohamedAhmedそれでも、プロパティ値を設定する機能は削除されません。 – Servy
彼は 'GetOnlyProperty'型の現在の' example'オブジェクトではできません –