問題タブ [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.
java - 配列をボックス化する組み込みのJavaメソッドはありますか?
このカスタム メソッドの代わりに使用できる標準メソッドはありますか?
c# - System.Objectを拡張するときにボックス化/ボックス化解除を回避するにはどうすればよいですか?
私は参照型にのみ適用できる拡張メソッドに取り組んでいます。ただし、現在は値のボックス化とボックス化解除を行っていると思います。どうすればこれを回避できますか?
使用例:
いくつかの方法で:
c# - CLRは、ボックス化されたオブジェクトのタイプをどのように認識しますか?
値型がボックス化されている場合、型指定されていない参照オブジェクト内に配置されます。では、ここで無効なキャスト例外が発生する原因は何ですか?
c# - ボクシングに関する基本的な質問/c#
追加後に内部に保存されている値を変更することはできbarますか?
文字列を「ボクシング」しようとしましfooたが、機能しません。
c# - C# 型変換
私は2つのオブジェクトを持っています。オブジェクト A とオブジェクト B。
オブジェクト A は、いくつかの XSD ファイルから生成されたクラスのインスタンスです。xsd.exe /c を使用してコンパイルしました。これで、新しいオブジェクトができました。
また、オブジェクト A に非常によく似たものを返す Web サービスもあります。したがって、現在、次のようなものがあります。
やりたいことはこれ
しかし、これはあまり好きではありません。「暗黙的に MyFramework.foo[] を WebService.foo[] に変換できません」と言う
これを解決する方法についてのアイデアはありますか? オブジェクトは非常に大きく、基本的に同じです。
.net - ボックス化を解除すると、ヒープ上のボックス化されたオブジェクト内の値へのポインタが返されますか?
私はこのMSDNMagazineの記事で、著者は次のように述べています(私の強調):
ボックス化は常に新しいオブジェクトを作成し、ボックス化されていない値のビットをオブジェクトにコピーすることに注意してください。一方、ボックス化を解除すると、ボックス化されたオブジェクト内のデータへのポインタが返されます。メモリコピーは発生しません。ただし、通常、コードによって、ボックス化されていない参照が指すデータがコピーされます。
太字にした文とそれに続く文に戸惑います。このMSDNページを含め、私が読んだ他のすべてのことから、ボックス化解除がヒープ上の値へのポインターを返すだけだと聞いたことはありません。開梱すると、最初と同じように、スタック上の値のコピーを含む変数が作成されるという印象を受けました。結局のところ、変数に「ヒープ上の値へのポインター」が含まれている場合は、値の型がなく、ポインターがあります。
誰かがこれが何を意味するのか説明できますか?作者はひび割れていましたか?(記事には他に少なくとも1つの明白なエラーがあります)。そして、これが真実である場合、「コードによって、ボックス化されていない参照が指すデータがとにかくコピーされる」場合はどうなりますか?
この記事は10年近く前のものであることに気づきました。おそらく、これは.Netの初期の段階で変更されたものかもしれません。
c# - 箱詰めと箱から出す
「i」はボックス化されていると見なされますか?
.net - この ArrayList を Generic List に変換するのは効率的ですか?
私が書いているコードは、アンマネージ コードから ArrayList を受け取ります。この ArrayList には、Grid_Heading_Blk 型の 1 つ以上のオブジェクトが常に含まれます。この ArrayList をジェネリック リストに変更することを検討しましたが、ジェネリック リストを使用するメリットがなくなるほど変換操作のコストが高くなるかどうかはわかりません。現在、foreach (Grid_Heading_Blk in myArrayList)ArrayList を使用するクラスに ArrayList を渡した後、ArrayList の内容を操作する操作を実行しているだけです。
ArrayList を一般的な型付きリストに変換する必要がありますか? もしそうなら、それを行う最も効率的な方法は何ですか?