問題タブ [boxing]
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.
language-agnostic - ボクシングとアンボクシングとは何ですか?トレードオフは何ですか?
明確で簡潔で正確な答えを探しています。
良い説明へのリンクを歓迎しますが、理想的には実際の答えとして。
c# - C#の汎用インターフェイスはボクシングを妨げますか? (.NET vs Mono パフォーマンス)
型として宣言された特定のメソッド パラメーターを持つ C# インターフェイスがありobject
ます。ただし、渡される実際の型は、インターフェイスを実装するクラスによって異なる場合があります。
byte[]
MyClass2 の問題は、 to と fromの変換が boxing と unboxing であることですobject
。これは、パフォーマンスに影響を与える計算コストの高い操作です。
この問題を汎用インターフェイスで解決すると、ボックス化/ボックス化解除が回避されますか?
これは .NET と Mono でどのように実装されていますか? どちらのプラットフォームでもパフォーマンスへの影響はありますか?
ありがとうございました!
.net - 値型でメソッドを呼び出すと、.NET でボックス化されますか?
私はスタック オーバーフローの質問に参加していました。Is everything in .NET an object? .
そして、1人のポスター(受け入れられた回答のコメント)は、値の型でメソッド呼び出しを実行するとボクシングが発生すると考えているようです。彼はBoxing and Unboxing (C# Programming Guide)を教えてくれましたが、これは私たちが説明しているユース ケースを正確に指定していません。
私は単一の情報源を信頼する人ではないので、質問についてさらにフィードバックを得たかっただけです. 私の直感では、ボクシングはありませんが、私の直感は最悪です。:D
さらに詳しく説明するには:
私が使用した例は次のとおりです。
ここで受け入れられた回答が示すように、問題の構造体がオブジェクトから継承されたメソッドをオーバーライドする場合、ボクシングは発生しません。
ただし、構造体がメソッドをオーバーライドしない場合は、callvirt の前に「constrain」 CILコマンドが実行されます。ドキュメントOpCodes.Constrained Fieldによると、これによりボクシングが発生します。
thisType が値型であり、thisType がメソッドを実装していない場合、ptr は逆参照され、ボックス化され、'this' ポインターとして callvirt メソッド命令に渡されます。
c# - 「AS」キーワードをインスタンス化する
私は最近、JSON と ExtJs フレームワークを使い始めました。例として次のコードを見つけました。
これを使用して、フロントエンドから情報を取得します。
次に、例では次のことを行います。
「as」キーワードがそのように使用されているのを見たことがありません。これは、updatedConfig 変数を JavaScriptObject として明示的にボックス化する別の形式ですか、それともこれについて理解していないことがありますか?
ありがとう
c# - ボクシングに関する質問
ボクシングは多くの情報が利用できる人気のある概念であることを私は知っていますが、私は実際に答えを見つけることができないいくつかの質問があります:
1)ボックス化によって値型(構造体)がオブジェクト(参照型)または参照型に変換される場合、ボックス化されてパフォーマンスが低下する値型を使用するのはなぜですか?私は、構造体またはクラスの特定の場合の利点と適合性を認識しています。(1)値(値型)は一時ストレージスペースのスタックに存在する傾向があると言われていますが、どのくらいの期間ですか?タイプが必要ない場合、その時点で確実に処理および廃棄するにはどうすればよいですか?それとも、これが使い捨てパターンの出番です。構造体を使用する理由は、その利点によるものだと思います。
興味深いことに、構造体を使用して2つの文字列とDateTimeフィールドを格納すると、構造体は2つの参照(文字列)とDateTimeを一緒に保持します。明らかに、これは値が分散するよりも速いと思います。このデザインで知っておくべきことはありますか?(2)。
1)http://en.csharp-online.net/Classes、Structs、and Objects—Boxing and Unboxing
2)http://dotnetperls.com/Content/Struct-Examples.aspx
私はここで私が求めている答えを検索しましたが、運がありません。学び、共有するための多くの知恵があるので、私は通常、GC、ジェネリック、例外処理などのトピックをこのサイトで検索します。
すべてのポスターへの(潜在的な)教育に感謝します!潜在的なナイーブを許してください。内部を学ぶことで、ILなどの理解に時間を費やすことができます(すぐに取り組むべきことがあります)。
c# - 列挙型ボクシングと等価性
これが False を返す理由
これはTrueを返しますか?
java - プリミティブ long の配列を long のリストに変換します
これはちょっと簡単なヘッドデスクのような質問かもしれませんが、私の最初の試みは驚くべきことに完全にうまくいきませんでした。プリミティブ long の配列を取り、それをリストに変換したかったので、次のようにしようとしました。
これを行う正しい方法は何ですか?
c# - ボクシングvsアンボクシング
私が最近受けたもう1つのC#インタビューの質問は、ボクシングとアンボクシングが何であるかを知っているかどうかでした。値型はスタックにあり、参照型はヒープにあることを説明しました。値が参照型にキャストされる場合、それをボクシングと呼び、その逆も同様です。
それから彼は私にこれを計算するように頼んだ:
何i
ですか?
私はそれを台無しにして50と言いましたが、実際には20です。今では理由がわかったと思いますが、さまざまな組み合わせで遊んでいたときに、これを見て驚いた。
私も見ることを期待していましb == 2
たが、そうではありません、なぜですか?a
2番目のボクシングがヒープ上のオブジェクト全体を破壊して置き換えるためですか?
私がこれを行う場合、それは問題ないからです:
何t2.x
ですか?3でなければなりません。しかし、これはボクシング/アンボクシングの例ではありません、これは正しいですか?では、これをどのように要約しますか?
ボクシング/アンボクシングの変換で上記と同じ値になる可能性はありますか?
c# - C#で値型をボックス化するユースケース?
値型のインスタンスを参照型のインスタンスとして扱う必要がある場合があります。このような状況では、値型インスタンスは、ボクシングと呼ばれるプロセスを通じて参照型インスタンスに変換できます。値型のインスタンスがボックス化されると、記憶域がヒープに割り当てられ、インスタンスの値がその領域にコピーされます。このストレージへの参照がスタックに置かれます。ボックス化された値はオブジェクトであり、値型インスタンスの内容を含む参照型です。
ウィキペディアにはJava の例があります。しかし、C# では、値の型をボックス化する必要があるのはどのような場合でしょうか? または、より良い/同様の質問は、スタックではなくヒープ (ボックス化) に値の型を格納したいのはなぜですか?