IDE0063はいつ廃棄されるのですか?
2023-09-07 22:56:38
質問
このC# 8の簡略化機能を理解しようとしているのですが。
IDE0063 'using'ステートメントを簡略化することができます。
例えば、私が持っている
void Method()
{
using (var client = new Client())
{
// pre code...
client.Do();
// post code...
} --> client.Dispose() was called here.
// more code...
}
IDE は、これを単純化することができると教えてくれました。
using
ステートメントを簡略化することができると教えてくれました。
void Method()
{
using (var client = new Client());
// pre code...
client.Do();
// post code...
// more code...
}
私は、それがどのように機能し、どのように私を決定するのか理解できません。
using
変数でないと判断する方法がわかりません。具体的には、いつ
client.Dispose
メソッドを呼び出すのでしょうか?
どのように解決するのですか?
C#8を使用しています。古いバージョンのC#では
;
を使用すると、これは無効になってしまいます。
新しい構文では
client
は周囲のメソッド (または他の
{}
のスコープブロック) に留まります。の外側のペアを省略することができることに注意してください。
()
も省略できます。
と呼ばれるもので、これは 使用宣言 で、ドキュメントは ここで .
void Method()
{
using var client = new Client();
// pre code...
client.Do();
// post code...
// more code...
} --> client.Dispose() is called here (at the latest)
論理的には、Dispose は
}
で行われますが、オプティマイザはそれよりも前にそれを行うかもしれません。
編集
私は
// more code
の後に
using
というブロックの末尾に記述することで、この改善が現れるのを防ぐことができます。ですから、次のようなコードに変換すれば、曖昧さはなくなります。
void Method()
{
// not relevant code
using (var client = new Client())
{
// pre code...
client.Do();
// post code...
}
}
をこのコードに置き換える。
void Method()
{
// not relevant code
using var client = new Client();
// pre code...
client.Do();
// post code...
}
関連
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み] C#の[Flags]Enum属性の意味とは?
-
[解決済み] EqualsメソッドがオーバーライドされたときにGetHashCodeをオーバーライドすることが重要な理由は何ですか?
-
[解決済み] async」と「await」の使い方とタイミング
-
[解決済み] LINQで.Firstと.FirstOrDefaultを使用するタイミングは?
-
[解決済み] フォルダが存在しない場合、作成する
-
[解決済み】C#には拡張プロパティがある?
-
[解決済み】Kinectのv2.0モーションをBVHファイルに保存する
-
[解決済み] C#6の "Using static "機能はどのように使用するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] Javaで中括弧を省略しても大丈夫ですか?[クローズド]