タグ付けされた質問 「typedreference」

3
TypedReferenceが舞台裏にあるのはなぜですか?それはとても速くて安全です…ほとんど魔法です!
警告:この質問は少し異端です...宗教的なプログラマーは常に良い習慣を守っています。読んではいけません。:) TypedReferenceの使用が(暗黙的に、ドキュメントがないために)推奨されない理由を誰かが知っていますか? ジェネリックであってはならない関数を介してジェネリックパラメーターを渡す場合(object値の型が必要な場合は、過剰または低速である可能性があります)、不透明なポインターが必要な場合など、その使用方法が優れていることがわかりました。実行時に(を使用してArray.InternalGetReference)仕様が見つかる配列の要素にすばやくアクセスする必要がある場合に使用します。CLRはこのタイプの誤った使用さえも許可しないので、なぜそれが推奨されないのですか?安全ではないようです。 私が見つけた他の用途TypedReference: C#でジェネリックを「特殊化」します(これはタイプセーフです): static void foo<T>(ref T value) { //This is the ONLY way to treat value as int, without boxing/unboxing objects if (value is int) { __refvalue(__makeref(value), int) = 1; } else { value = default(T); } } ジェネリックポインターで動作するコードを記述する(これは、誤用すると非常に危険ですが、正しく使用すれば高速で安全です): //This bypasses the restriction that you can't have …
128 c#  typedreference 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.