問題タブ [sealed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - クラスがデフォルトでシールされないのはなぜですか?
シールされたキーワードの存在は、他のクラスがそれを継承できるかどうかはクラス作成者の決定であることを示しているので、なぜクラスはデフォルトでシールされておらず、明示的に拡張可能であるとマークするキーワードを使用していないのでしょうか?
多少異なることは知っていますが、アクセス修飾子はこのように機能します。デフォルトは制限的で、より完全なアクセスはキーワードの挿入によってのみ許可されます。
よく考えていない可能性が高いですが、人道的にお願いします!
linq-to-sql - LINQ to SQLのプロバイダーモデルのどの部分が、サードパーティ(Microsoft以外)のデータベースをサポートするように拡張することを不可能にしていますか?
LINQ to SQLプロバイダーモデルには封印されたクラスがいくつかあったと思われますが、それを使用するためにどのクラスを「封印解除」する必要があるかを正確に把握することはできませんでした。
仮に、プロバイダーモデルを有効にするには、どのクラスを開封する必要がありますか?
[編集:封印されたキーワードは、変更されるべきではないことを意味することを知っていますが、BCLクラスの封印解除はここでは問題ではないと仮定しましょう。]
.net - 'sealed' キーワードが .Net に存在するのはなぜですか?
.Net フレームワークの多数のクラスは「封印済み」としてマークされているため、これらのクラスを独自のクラスに継承することはできません。確かにこれは、既存のオブジェクトの動作を拡張および再定義できるオブジェクト指向の性質に反します。
「封印された」キーワードが存在する正当な理由はありますか?
例として、Silverlight の NotifyCollectionChangedEventArgs は封印されています。AddRange と RemoveRange をサポートする ObservableCollection の独自のバージョンを作成したかったのですが、NCCEA の Silverlight バージョンには、既に IList として定義されている NewItems プロパティと OldItems プロパティの複数の項目をサポートするコンストラクターが用意されていません。通常、NewItems プロパティと OldItems プロパティをオーバーライドする独自のバリアントを使用してクラスを拡張するだけですが、この場合はそれができず、そうすべき理由もわかりません。
c# - コンパイラは、シールされたクラスによって実装された仮想メソッドをどのように最適化しますか
次のコードがどのように最適化されているのか疑問に思っています。具体的には、仮想通話と直接通話に関するものです。すべてが最適化されていると思う方法についてコメントしましたが、それらは単なる推測です。
c++ - MSVC ++の[プロパティ]タブの[アイテム]はどういう意味ですか?
MSVC ++コンパイラで遊んでいたところ、ポイントクラスの[プロパティ]タブに次のように表示されました。
これらはどういう意味ですか、IsAbstractとIsSealedを除いてすべてがグレー表示されたのはなぜですか?
c# - アクセスレベルと修飾子(プライベート、封印など)は、C#のセキュリティ目的に役立ちますか?
リフレクションを使用してプライベートメンバーと内部メンバーを操作できることを確認しました。また、 「封印された」クラスはそうでないクラスよりも安全であると言われているのを見ました。
「パブリック、プロテクト、内部、プライベート、抽象、封印、読み取り専用」の修飾子は、設計とAPIの使用に関する紳士協定以上のものであり、リフレクションにアクセスできる限り破られる可能性がありますか?また、ハッカーがAPIを呼び出すコードをすでに実行している場合、ゲームはすでに失われていますね。
以下は他のどのクラスよりも安全ですか?
c# - RhinoMocks でシール クラスを返すメソッドをモックする
このコードの実行:
いつ
NotSupportedException - 「封印されたクラスのモックを作成できません」をスローします。封印されたクラスをモックできない理由は理解できますが (TypeMock には解決策があります)、封印されたクラス (文字列) を返すクラスをモックすることの問題は何ですか?
c# - この C# クラス宣言がコンパイルされるのはなぜですか?
この質問は本当に無意味ですが、私はただ興味があります:
これ:
コンパイルされますが、警告が表示されます
これの間:
コンパイルしません。純粋な好奇心からですが、これには理由がありますか?
c# - プライベート コンストラクター、サブクラス化およびシール
基本クラスでプライベートコンストラクターを宣言することでサブクラス化を防ぐことができる場合、なぜ「sealed」キーワードが必要なのですか? CLIの方が最適化できるからですか?多分。
ありがとう。
c++-cli - c++ シールおよびインターフェイス
C++ には、sealed キーワードと interface キーワードがあることに気付きました。これは CLR C++ 専用ですか? そうでない場合、C++ 標準に封印され、インターフェイスが追加されたのはいつですか? C# と同じ意味を C++ でも持っていますか? そうでない場合、標準 C++ で同等のものを取得するにはどうすればよいですか?