問題タブ [internals]
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.
wpf - WPF ListView の ListViewItems にアクセスするにはどうすればよいですか?
イベント内で、ListViewItem のテンプレート内の特定の TextBox にフォーカスを置きたいと思います。XAML は次のようになります。
コードビハインドで次のことを試しました。
FindName()
が返されるため、ドキュメントを誤解しているようですnull
。
また、ListView.Items
(もちろん) バインドされたビジネス オブジェクトが含まれており、ListViewItems が含まれていないため、これも役に立ちません。
どちらmyList.ItemContainerGenerator.ContainerFromItem(item)
も null を返します。
c# - c# はオブジェクトのハッシュ コードをどのように把握しますか?
この質問は、タプルに関する議論から生まれました。
タプルが持つべきハッシュコードについて考え始めました。KeyValuePair クラスをタプルとして受け入れるとどうなるでしょうか? GetHashCode() メソッドをオーバーライドしないため、おそらく「子」のハッシュ コードを認識しないでしょう...したがって、ランタイムは Object.GetHashCode() を呼び出しますが、これは認識されません。実際のオブジェクト構造。
次に、GetHashCode() と Equals() がオーバーロードされているため、参照型の 2 つのインスタンスを実際に Equal にすることができます。そして、それらをタプルの「子」として使用して、辞書を「ごまかす」。
しかし、うまくいきません!ランタイムはどうにかしてタプルの構造を理解し、クラスのオーバーロードされた GetHashCode を呼び出します!
それはどのように機能しますか?Object.GetHashCode() によって行われた分析は何ですか?
複雑なキーを使用する場合、悪いシナリオでパフォーマンスに影響を与える可能性はありますか? (おそらく、不可能なシナリオ...しかし、それでも)
次のコードを例として考えてみましょう。
更新以下の回答で説明されているように、これについての説明を見つけたと思います。その主な成果は次のとおりです。
- キーとそのハッシュ コードには注意してください :-)
- 複雑な辞書キーの場合、Equals() と GetHashCode() を正しくオーバーライドする必要があります。
c# - デフォルトで内部またはパブリックの可視性を使用する必要がありますか?
私はかなり新しい C# および .NET 開発者です。私は最近、C# を使用して MMC スナップインを作成しましたが、特に組織内の他の開発者が C++ で行うのがいかに難しいかについて多くの恐ろしい話を聞いた後は、その簡単さに満足していました。
スナップインを実行するためにランタイムで必要な場合を除いて、ある時点でプロジェクト全体をほとんど調べて、「パブリック」キーワードのすべてのインスタンスを「内部」にしました。これについてどう思いますか? 通常、クラスとメソッドを public または internal にする必要がありますか?
c# - C# での "internal" キーワードの実用的な使用法
internal
C# でのキーワードの実際の使用法を教えてください。
修飾子が現在のアセンブリへのアクセスを制限していることは知っていinternal
ますが、いつ、どのような状況で使用する必要がありますか?
database - データベースは内部でどのように機能しますか?
私はここ数年データベースを扱ってきましたが、データベースをかなり使いこなせるようになったと思います。しかし、最近Joelのリーク抽象化の法則について読んでいて、データベースから必要なものをほぼすべて取得するためのクエリを記述できるにもかかわらず、データベースが実際にクエリをどのように解釈するのかわからないことに気付きました。データベースが内部でどのように機能するかを説明する良い記事や本を知っている人はいますか?
私が興味を持っているいくつかの特定のものは次のとおりです。
- selectステートメントに一致するものを見つけるためにデータベースは実際に何をしますか?
- データベースは、いくつかの「where key1 = key2」ステートメントを含むクエリとは異なる方法で結合を解釈しますか?
- データベースはどのようにしてすべてのメモリを保存しますか?
- インデックスはどのように保存されますか?
c# - C# での静的コンストラクター/初期化子の順序
C# アプリで作業しているときに、いくつかの場所で静的初期化子が次のように相互に依存していることに気付きました。
うまくいった特別なことは何もしません。それはただの運ですか?C# にはこれを解決するルールがありますか?
編集: (re: パノス) ファイルの字句順は王様のようですか? ファイル間ではどうですか?
見てみると、次のような循環依存関係を試しました。
そして、プログラムは同じように実行されませんでした (テスト スーツは全面的に失敗し、私はそれ以上調べませんでした)。
debugging - デバッガーはどのように機能しますか?
デバッガーはどのように機能するのでしょうか? 特に、すでに実行中の実行可能ファイルに「接続」できるもの。コンパイラがコードを機械語に変換することは理解していますが、デバッガはそれが何に接続されているかをどのように「認識」しますか?
java - SpringFrameworkおよびその他のIoCコンテナーの内部
私はしばらくの間Springを使用してきましたが、それがどのように機能するのか、より具体的には、インターフェースまたは@annotationのみでマークされたBean/クラスをどのようにロードして織り込むのかを常に考えていました。
xml宣言の場合、springがBeanを前処理する方法を簡単に確認できます(Springが読み取るxmlコンテキストで宣言されます)が、アノテーションのみでマークされたクラスの場合、それがどのように機能するかはわかりません。任意のエージェントをjvmなどに渡します。
ある種の基準でクラスを前処理できるJava/JVMフックがあると思いますが、ドキュメントで何も見つけることができませんでした。
誰かが私にいくつかのドキュメントを教えてもらえますか?これはjava.lang.instrument.ClassFileTransformerAPIに関連していますか?
python - sys.setcheckintervalを適切に変更できるように、Pythonでバイトコードをカウントするにはどうすればよいですか?
ワークキューとスレッドを使用するポートスキャンアプリケーションがあります。
単純なTCP接続を使用し、パケットが返されるのを待つのに多くの時間を費やします(最大0.5秒)。したがって、スレッドは完全に実行する必要はありません(つまり、前半はパケットを送信し、コンテキストスイッチを実行し、処理を実行し、ネットワークデータが待機しているスレッドに戻ります)。
sys.setcheckinterval
デフォルトの100(別のスレッドに切り替える前に最大100バイトコードを実行できるようにする)からを変更することで、パフォーマンスを向上させることができると思います。
しかし、スレッドまたは関数で実際に実行されているバイトコードの数がわからず、ブラインドで値を推測しているだけで、テストとテストへの依存は、測定可能な違いを示しています(実行されるコードの量が最小限であるため、これは困難です。単純です。ソケット接続、したがってネットワークジッターはsys.setcheckintervalを変更するよりも測定に影響を与える可能性があります。
したがって、sys.setcheckintervalを何に設定するかをよりインテリジェントに推測できるように、特定のコード実行(つまり、関数またはスレッドの実行の合計)に含まれるバイトコードの数を調べたいと思います。
multithreading - win32 でスレッドの現在の状態 (ブロック、中断、実行中など) を取得するにはどうすればよいですか?
この情報を生成する文書化された API が見つかりませんでした。
友人から、NtQuerySystemInformation を使用するよう提案されました。それを調べた後、情報はそこにあります(SYSTEM_THREADを参照)が、文書化されておらず、あまりエレガントではありません-システム内のすべてのスレッドの情報を取得します。
これを行うための、より洗練された、できれば文書化された API を知っていますか?