問題タブ [using-declaration]

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.

0 投票する
4 に答える
107 参照

c# - なぜこれは範囲外ではないのですか

最後の括弧 (下から 4 行) は、using ステートメントを閉じます。ここで明らかな何かが欠けているに違いありませんが、コードはコンパイルされ、再シャープ化されますが、var メッセージは using ステートメントの外で使用されます。実際、using ステートメント内に配置すると、ビルドに失敗します。

実際、このhttps://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-statementから

「using ステートメントにより、オブジェクトのメソッドを呼び出しているときに例外が発生した場合でも、Dispose が呼び出されることが保証されます。オブジェクトを try ブロック内に配置してから、finally ブロックで Dispose を呼び出すことによって、同じ結果を得ることができます。実際、これは、は、using ステートメントがコンパイラによって変換される方法です。前のコード例は、コンパイル時に次のコードに展開されます (オブジェクトの制限されたスコープを作成するために追加の中括弧に注意してください)。

メッセージはすでに範囲外であり、おそらく破棄されているはずです。

0 投票する
1 に答える
77 参照

c++ - 引数依存ルックアップは、通常のスコープ ルックアップの前に実行されますか?

これは、「C++ Primer」第 5 版の §13.3 に記載されている問題のコードです。

この本は、クラス固有のスワップが using 宣言によって隠されていないという現象に言及しており、読者に §18.2.3 を参照してもらいます。

ここに画像の説明を入力

そのセクションを読んで、これが Argument-Dependent Lookup (ADL) に関連している可能性があることに気付きました。以下は抜粋です。

ここに画像の説明を入力

しかし、まだ理解に曖昧なところがあります。私の質問は、ADL は通常のスコープ ルックアップの前に行くのか、それとも通常のスコープ ルックアップの後に行くのかということです。私の現在の理解では、ADL は通常のスコープ ルックアップの前に行われます。私が正しいと思う場合は確認が必要です。または、私が間違っていると思われる場合は、どのような間違いを犯したかを指摘してください。ありがとうございました。