問題タブ [optional-parameters]
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# - C#でオプションの「アウト」パラメータをシミュレートするためのパターン?
私は API を C から C# に変換しています。関数の 1 つは、多数の関連オブジェクトを割り当てます。そのうちのいくつかはオプションです。C バージョンは、オブジェクトに整数ハンドルを返すために使用されるいくつかのポインター パラメーターを受け入れます。呼び出し元は、NULL
これらのオブジェクトの割り当てを回避するために、いくつかのポインターを渡すことができます。
C# バージョンの場合、明らかな変換ではout
、ポインターの代わりにパラメーターが使用されます。
...しかし、これでは、どのオブジェクトが不要であるかを示す方法がありません。私が真似できるような、C# API のよく知られた例はありますか? そうでない場合、何か提案はありますか?
resharper - インテリセンスの混乱を再鋭化
今日、Resharper 5 のコピーで奇妙なことが起こりました。次のようなクラスがあります。
DoWork(us と入力し始めると、Intellisense から次のように表示されます。
コンストラクター引数をプルアップしており、コロンで終わっていることに注意してください: userName:
何が起きてる?
編集:
以下で Reed が回答したように、これはNamed and Optional Argumentsと呼ばれる新しい C# 4 機能です。その目的は、パラメーター リスト内の位置ではなく、引数の名前を指定できるようにすることです。そのため、使用するために引数リスト内の引数の位置を覚えておく必要はありません (ただし、これは intellisense ではほとんど意味がありません)。ただし、オプションの引数を使いやすくします。
ありがとうリード。
c# - C# 4 でのオーバーロードの解決とオプションのパラメーター
関数の7つのオーバーロードを持つコードを使用していますTraceWrite
:
(パブリックの静的な名前空間のノイズはすべて、上と全体で省略されています。)
したがって、その背景で: 1) 他の場所では、4 つの引数を使用し
て呼び出します: 、および次のエラーが発生します。TraceWrite
string, LogLevelENUM, string, bool
この呼び出しが 2 番目のオーバーロードに解決されないのはなぜですか? ( TraceWrite(string, LogLevelENUM, string, bool, string = "")
)
2) で呼び出す場合TraceWrite
、string, LogLevelENUM, string, string
どのオーバーロードが呼び出されますか? 一代目か三代目?なぜ?
html - アンカーとして値が設定されたHTMLオプションタグ
いくつかのスーパーレガシーコードを更新していますが、このHTML5と互換性を持たせる方法がわかりません。
私は個人的にそのようなものに出くわしたことがないので、どんな助けも素晴らしいでしょう。
fortran - Fortran90オプションの引数の存在
pgf90 7.2でのpresent()組み込み関数の動作を理解していません。これをテストするために20行のサンプルプログラムを作成しましたが、結果はまだ意味がありません。観察:
メインプログラムからtestopt(1,2、(any variable))を呼び出すと、「present check:TF」と出力されます。ただし、I:サブプログラムからtestopt(1,2、(any variable))を呼び出すと、「present check:TT」と出力されます。どちらの場合も「presentcheck:F F」が表示されると予想しました。これは、オプションではない3つの引数のみを使用してサブルーチンを呼び出しており、オプションの引数はどちらも呼び出していないためです。なぜこのように動作するのか理解できず、これが私が取り組んでいるプログラムに大きなバグを引き起こしています。洞察に感謝します。ありがとう。
c# - C# Windows Phone XNA アプリケーションのオプション パラメーター
Windows Phone XNA アプリケーションでオプションのパラメーター (およびその他の純粋に構文的な C# 4.0 機能) を使用することは可能ですか?
これについて相反する情報を読んだり聞いたりしました。アプリケーションの [高度なビルド設定] で、[言語バージョン] が C# 3.0 に設定されています ([言語バージョン] ドロップダウン リストでC# 4.0 を使用できません)。3.0 は、最初に Windows Phone の開発に使用される「公式」の C# バージョンですか?
C# 4.0 の機能がまったく利用可能になると期待するのはばかげているでしょうか?
parsing - コンマ区切りの関数呼び出しパラメーターのパーサー式
myfunc1()
、、myfunc2(param1)
およびmyfunc3(param1, param2)
(パラメーターの量が不明な)などの式を解析できるパーサーを作成しています。今、私は自分の解析式を正しくしようとしています。レモンパーサージェネレーターを使用しています。これが私が思いついたものです:
今のところ、中括弧の内容は気にしないでください。定義では、空のparams
パラメータ(次々にいくつかの区切り文字)が許可されていますが、現時点では問題ありません。しかし、空でないパラメーターを強制するために定義を変更する必要がありますが、それでもすべてのパラメーターはSEPARATOR
トークンで区切られていますか?
function - Clojure で関数引数のデフォルト値を作成する方法
私はこれで来ます:
しかし、これを行うにはより良い方法である必要があります。
c# - オプションの引数コードは .NET 3.5 でコンパイルされます。なんで?
このコードは、フレームワーク 3.5 プロジェクトの VS 2010 で正常にコンパイルされます (私はそれをトリプル チェックしました)。
なんで?C# 4 仕様 (ドキュメント バージョン) のセクション 21.1 には、これが下位互換性を持つべきであると書かれているものは何もありません。コンパイルエラーが発生しないのはどうしてですか? これは、状況によってはサイレントに失敗しますか?
c# - C# デフォルトのオプション パラメータ チューザ
どのコンストラクターが選択されますか?