回答編集履歴
2
sage
answer
CHANGED
File without changes
|
1
sage
answer
CHANGED
@@ -2,4 +2,26 @@
|
|
2
2
|
しかし、ほとんどの場合は IDisposable は実装する必要ありませんし、実装した場合の中のほとんどの場合はもっと簡単に書くことができます。
|
3
3
|
|
4
4
|
解説記事を書いてみました。
|
5
|
-
[C# のファイナライザ、Dispose() メソッド、IDisposable インターフェースについて](https://qiita.com/Zuishin/items/9efc9c8cbb98300bbc64)
|
5
|
+
[C# のファイナライザ、Dispose() メソッド、IDisposable インターフェースについて](https://qiita.com/Zuishin/items/9efc9c8cbb98300bbc64)
|
6
|
+
|
7
|
+
結論だけ言うと、ほとんどの場合これで大丈夫です。
|
8
|
+
|
9
|
+
```C#
|
10
|
+
class Class1 : IDisposable
|
11
|
+
{
|
12
|
+
private bool disposedValue = false; // 重複する呼び出しを検出するには
|
13
|
+
|
14
|
+
public virtual void Dispose()
|
15
|
+
{
|
16
|
+
// すでに処理されている場合は何もしない
|
17
|
+
if (disposedValue)
|
18
|
+
{
|
19
|
+
return;
|
20
|
+
}
|
21
|
+
|
22
|
+
// ここでマネージリソースを解放
|
23
|
+
|
24
|
+
disposedValue = true;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
```
|