質問

最近脳ベンチテストを受け、高得点を獲得しましたが、私にとって難しい問題がいくつかありました。英語が母国語ではないからかもしれませんが…質問の 1 つは次のとおりです。

タイプセーフティについて説明しているのは次のうちどれですか?

  1. CLR の参照型と値型のセキュリティを確保するために使用されるプログラミング構造
  2. 管理外アクセスの禁止によるメモリリークからの保護
  3. CLR 固有の機能により、型が独自の AppDomain 以外のメモリにアクセスできないことが保証されます。
  4. 強力な名前のキーを使用してアセンブリとその型を保護するために作成されたメカニズム
  5. 割り当てられたオブジェクトが常に互換性のある方法でアクセスされることを保証する概念

1 か 5 だと思いますが、とにかく奇妙に聞こえます:(

どう思いますか?

役に立ちましたか?

解決

実際に私は、型の安全性は、セキュリティとは何の関係もありませんので、それは選択肢5だと思います。

他のヒント

がうまく型付けされたプログラムが間違って行くことはできません。 の安全は[ロビン・ミルナー] MLプログラミングについて[1]の有名なスローガンに良い作るために設計された言語の特徴であるタイプEM>。

が適切に理解することができる前に、スローガンは、いくつかの開梱を必要とするが、コンストラクタに適用されるパラメータまたは機能が互換性のないタイプの値を有する、すなわちときには、基本的には、プログラムが原因ランタイム型エラーで失敗することができないことを意味します。

ファーストクラスの値、機能の抽象化と一部の機能アプリケーションとして整数、整数の機能を可能にし、バイナリ関数として通常の整数算術演算子を定義する言語を考えます。型の安全性のプロパティは、コンパイラが加算演算子の引数の両方が整数にしていない機能に減らす式であることを確実にするために強制するものです。プログラムはよく型付けされた場合、コンパイラはそれのための実行可能なオブジェクトを発することができます。それ以外の場合は、フラグのプログラミングエラーおよびアボートします。

以下に、MSDNのリンクによると、 http://msdn.microsoft.com/en-us/library/hbzz1a9a.aspx

タイプセーフなコードは、それがアクセスを許可されているだけのメモリ位置にアクセスします。 (この説明のために、型の安全性は、具体的には、メモリタイプの安全を参照してより広い点で型安全性と混同してはならない。)例えば、タイプセーフコードは、別のオブジェクトのプライベートフィールドから値を読み取ることができません。それだけで明確に定義された型、許容な方法にアクセスます。

  

の選択5   オブジェクトを割り当てられた保証を扱う概念が常に互換性の方法でアクセスされている。

型の安全性のお得な情報をあなたがfooを作成するとき、あなたはバーとして扱うことができないことを確実にすることに。あなたはそれが何であるかのタイプを知らない(または保証されない)場合は、単純に記述したコードが期待どおりに動作しない場合があります。

タイプセーフな言語を使用すると、例えば、タイプに互換性のないメソッドを呼び出していないこと(コンパイル時に)ことを確認しますint型の長さ()。非タイプセーフな言語は、実行時にそれを把握します。だから、選択肢5ます。

他が言ったように、選択肢5 ...

一般的には - .NET用、クロスランゲージのものと型の安全性を可能に共通型システム(CTS)をチェックしてください。

チェックアウト: http://en.wikipedia.org/wiki/Type_safety に。 ..

これはオプション#5です。型の安全性は保証ではなく、具体的なものです。それは にないアセンブリは、管理対象外の呼び出し(のPInvoke)を実行するために危険なコードを使用した場合に言う...タイプセーフであるとは、.NETコードの可能性です。 JIT時には、プロセスはタイプがタイプセーフ、確かに、あるJITコンパイルされて検証している実行されます。私は、このプロセスについての細目を認識していないけど、JITコンパイルされたタイプが通過すれば、それはタイプセーフ検証可能considerdされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top