2009-03-16 7 views
4

Reflectorでアセンブリを見るとき、アセンブリにCompilationRelaxations属性が見つかりました。 This linkは、次の属性が指定されていることを示します。.NET/C#でリラックスした例外とは何ですか?

オプティマイザに緩やかな例外の緯度が追加されます。

リラックスした例外とは何か、コンパイラは「余分な緯度」を与えて何をしますか?

答えて

4

これにより、コンパイラは最適化をより柔軟に行うことができます。

詳細はthe help for the CompilationRelaxations enumを参照してください。 MSDNヘルプからNoStringInterning

、この:

 
Marks an assembly as not requiring string-literal interning. 

In an application domain, the common language runtime creates one string 
object for each unique string literal, rather than making multiple copies. 
This behavior, called string interning, internally requires building 
auxiliary tables that consume memory resources. 

--- EDIT ---

この時点で、用途属性単一列挙型は1つのだけのオプションであり、

この属性はenumを使用するように指定されているため、後でさらに多くのオプションを簡単に追加できます。これは、このアセンブリ属性を介して現在許可されている唯一の最適化です。

+0

いいえ、enumには1つの値しかありません:NoStringInterning –

+0

この属性には1つのオプションしかありません:)互換性を維持しながら後で拡張のために列挙を使用しました。 –

+0

なぜコンパイラは自動的にNoStringInterningをassemlbyに設定しますか?私はそれを自分で設定していませんでした。 –

関連する問題