問題タブ [conditional-attribute]
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.
ruby - メソッドへの Ruby 条件付き引数
通常、多くの Web サイトで同じである css セレクターに基づいてデータを抽出する「一般的な」メソッドがいくつかあります。ただし、特定の Web サイトの css セレクターを引数として受け入れる別のメソッドがあります。
title_selector 引数が渡されない場合は、get_title メソッドを呼び出す必要があります。どうやってやるの?
cssセレクターを引数として受け入れるスクレイプ
ジェネリック タイトル エクストラクタ
c# - MSIL 呼び出しの生成を回避するための ConditionaAttribute シンボルの AND 結合または否定
C# でいくつかの条件付きコンパイルを行う必要がありますが、グローバル シンボルの数を低く抑えるようにも要求されました。したがって、(そして多くのシンボルを追加する)代わりに#if ENABLE_MODULE
、私は主に opt-out を行います#if !DISABLE_MODULE
。
コア ループをプロファイリングするときは、結果をより明確に表示するために、何をオフにするかを細かく制御したいと考えています。ただし、空の assert 呼び出し (#if
メソッド本体内) の場合でも、呼び出しだけでかなりの時間がかかります。そのため、属性を使用して呼び出しを完全に削除し、コードを読みにくくするセクションで[Conditional]
すべてを囲む必要がないようにしました。#if
ただし[Conditional]
、いくつかの注意事項があります。
- 一緒にのみ OR できます。
- not ! を使用した否定 内部条件は許可されていません。
- それらを AND 結合する方法はありません。
- #if とは異なり、実際に呼び出されたメソッドのファイル スコープ シンボル定義ではなく、呼び出し元のファイル スコープ シンボル定義によって解釈されます。
私は回避策を考え出しましたが、見栄えが悪く、コードを繰り返す傾向があります (以下の__Convoluted()
方法を参照)。無効化されたセクション内のコード#if
は、Visual Studio のコメントのように扱われるため (名前のリファクタリングがないため)、すべてのシンボルの組み合わせがチェックされないなどの理由で、さらに悪化し、壊れたコミットになります。
いくつかのアンブレラ シンボルを使用することを考えましたが、それではすべてを正の OR で考える必要があり、たとえば、ほとんどのアサートが必要な場合もありますが、一部のモジュールからはアサートされません。
おそらく、これには実用的なものではなく、ソフトウェアアーキテクチャの答えがあります。
Unity を使用しているため、ファイル (csc.rsp) 内のコンパイラ パラメーターを置き換えるビルド スクリプトを実行しないと、構成 (デバッグ/リリース/開発ビルド) ごとにシンボルを細かく制御することはできません。
私の質問:これを処理するより良い方法はありますか?
御時間ありがとうございます。
さまざまな代替案を試して少し宿題をし、いくつかの結論に達しました(次のコード)
最小限のテスト ケース C# .NET コンソール アプリ
ユーティリティファイル
さまざまな呼び出しの組み合わせ
コードは、グローバル シンボルが次のように設定されている場合に出力します。Conditional が #if のように機能しないことCallAnd
に注意してください。CallNot