問題タブ [compiler-generated]
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.
c# - コンパイラで生成されたローカルを介した null 許容構造体を使用した System.Double への暗黙的な変換: なぜこれが失敗するのですか?
以下の場合、InvalidCastException がスローされるのはなぜですか? バグの範囲外である理由がわかりません (これは x86 にあります。x64 は clrjit.dll で 0xC0000005 でクラッシュします)。
に対して生成された CIL は次のMain()
とおりです。
IL の 0x2D ~ 0x3E 行に注意してください。MyDouble?
インスタンスを取得し、GetValueOrDefault
それを呼び出し、その上で暗黙的な演算子を呼び出し、結果を a にラップしてDouble?
、コンパイラが生成したCS$0$0001
ローカルに格納します。行 0x3F から 0x55 でCS$0$0001
値を取得し、'unwrap' 経由GetValueOrDefault
で 0 と比較します...しかし、ちょっと待ってください! MyDouble::op_Implicit
行 0x46 で実行する余分な呼び出しは何ですか?
C# プログラムをデバッグすると、確かに への 2 つの呼び出しが表示されます。 が初期化されていないimplicit operator Double(MyDouble value)
ため、失敗したのは 2 番目の呼び出しです。value
ここで何が起こっているのですか?
c++ - 抽象基底クラスのコンパイラ生成デストラクタは仮想になりますか?
明らかに、Base
派生します。では、C++ は、コンパイラによって生成されたデストラクタBase
が仮想でなければならないと言っていますか?
ありがとう!
c# - dotPeek 逆コンパイルされたコードでコンパイラによって生成された型を理解する
へい。理解できないコードが得られるまで、 の逆コンパイルされたソースを読んDigi Traffic Accelerator
でいました (学習するのに最適な方法だと思います)。ご覧ください:
ご覧のとおり、CheckProxy
メソッドで、コンパイラが新しい型を生成したようです! この方法で実際に何が起こっているのか分かりますか? コードを理解するにはどうすればよいですか?
c# - C# イベント - リフレクションが単純なイベントを add{...} remove {...} のイベントと区別する方法はありますか?
わかりました、ここに投稿しようとしたときにこれを解決しました。どちらも add_testEvt1 remove_testEvt1 メソッドのペアになるため、リフレクションのようなものevent Action testEvt1;
とリフレクションのあるものを区別する方法を探していました 。event Action testEvt1 { add { } remove { }}
驚くべきことに、ここでは CompilerGeneratedAttribute は役に立ちません。
解決策は、イベントと同じ名前でファイルされたプライベート バッキングを探すことであることが判明しました。コンパイラは単純なイベントに対してのみ 1 つを生成し、同じ名前の他のフィールドを持つことはできません。
コードが示すように:
evt1Attrib と evt2Attrib はどちらも null になります。ただし、バッキング ファイルは単純な testEvt1 に対してのみ見つかり、testEvt2 に対しては見つかりません。
他の誰かがたまたま同じ問題を抱えていて、testEvt1 と testEvt2 を区別する簡単な方法と、イベントのメソッドを追加および削除するためにコンパイラが CompilerGeneratedAttribute を追加しない理由を知っている人がいる場合は、これを投稿することにしました。将来変更される可能性のあるバッキング フィールドの命名規則に依存しない方法を知りたいです。
java - コンパイラによって生成された既定のコンストラクタは公開されますか?
クラスを書くときWidget.java
コンパイラによって生成されたコンストラクターはpublicまたはdefaultになりますか?
パブリックは次のようになります
一方、デフォルトは次のように
c++ - 抽象基本クラスのデストラクタ保護は C++ で継承されませんか?
オブジェクトの基本クラスのデストラクタのみを呼び出すことによって引き起こされた、コード内のメモリ リークを発見しました。この問題は理解されています。virtual
インターフェイス クラスのデストラクタにを既に追加しましたMyÌnterface
。私を困惑させているのは、MyHelper
最終的に呼び出される私のヘルパー クラスの標準デストラクタが明らかにコンパイラによって作成されたことです。これを 2 つの異なるコンパイラで試しました。
メンバーまたは基本クラスが制限を導入すると、ほとんどのデフォルト実装が作成されないことに気付いたので、これは私にとって非常に驚きでした。デストラクタの保護が継承されないのはなぜですか?
上記のコード例の出力は、欠落している を「示しています」SomeImplementation ctr
:
java - Netbeans は壊れたコードを TopComponent に再生成します。これを修正するにはどうすればよいですか?
私はこれに 1 週間以上対処してきましたが、今では私の生産性を妨げ始めています。
カスタム ドキュメント フィルタを適用する JTextBox があります。これを追加するには、コントロールを右クリックして [コードのカスタマイズ] に移動し、すべての下に次の行を追加しました。
さて、これはコピーと貼り付けの仕事でした(他の場所でこれを使用したため)。フィルターを設定したかったフィールドは と呼ばれTextField
ます。うっかり OK をクリックしてコンパイルしたら、爆発してしまいました。ああ、私は私の間違いを見ます。修正して再コンパイルしても、まだエラーが発生します。今私のコードはこれを持っています:
そして、コードのカスタマイズに入ると、正しい (一番上の) ものだけが表示されます。Netbeans を閉じ、Notepad++ でファイルを編集し、問題のある行を削除して、Netbeans を起動します。コンパイルし、実行し、テストしてから、戻ったときに、コードが誤った行で再生成されました。
私はNetbeansのキャッシュを吹き飛ばしましたが、それは何もしなかったので、これを修正する方法について本当に途方に暮れています. テイカーはいますか?
Netbeans バージョン 7.3.1。
更新:少し調べてみたところ、Topcomponent の *.form ファイルでこれを見つけました。
おそらくこれを削除すると問題が解決する可能性がありますが、私にはわかりませんし、このプロジェクトを破壊する危険を冒したくありません.