[解決済み】C#のUsingブロックとは何ですか、そしてなぜそれを使うべきなのですか?[重複している]
2022-03-30 04:57:27
質問
の目的は何ですか?
Using
ブロックを作成しました。ローカル変数とどう違うのですか?
どのように解決するのですか?
型がIDisposableを実装していれば、自動的にその型をディスポーザブルにします。
与えられる。
public class SomeDisposableType : IDisposable
{
...implmentation details...
}
これらは等価です。
SomeDisposableType t = new SomeDisposableType();
try {
OperateOnType(t);
}
finally {
if (t != null) {
((IDisposable)t).Dispose();
}
}
using (SomeDisposableType u = new SomeDisposableType()) {
OperateOnType(u);
}
2番目の方が読みやすく、メンテナンスもしやすい。
C# 8以降では
の新しい構文です。
using
より読みやすいコードになるかもしれません。
using var x = new SomeDisposableType();
を持たないのです。
{ }
のブロックがあり、usingのスコープは宣言された時点から宣言されたブロックの終わりまでとなります。というようなことを避けられるということです。
string x = null;
using(var someReader = ...)
{
x = someReader.Read();
}
そして、これを持つ。
using var someReader = ...;
string x = someReader.Read();
関連
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] enumを列挙するには
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] usingディレクティブはネームスペースの内側と外側のどちらを使うべきですか?
-
[解決済み] なぜ ++[[]][+[] +[+[]] は "10" という文字列を返すのでしょうか?
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] 誰かPythonで__all__を説明してくれませんか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み】C#の "using "の使い方は?