Skip to content

Commit 12360a3

Browse files
Improve IDisposable inheritance examples (dotnet#8117)
* Update base1.cs * Update derived1.cs * Update base1.fs * Update derived1.fs * Update base1.vb * Update derived1.vb * Update comment * Create IDisposableSnippets.vbproj * Rename BaseClass * Rename DerivedClass * Rename WordCount * Rename Example * Fix name collision
1 parent 180885a commit 12360a3

File tree

9 files changed

+41
-33
lines changed

9 files changed

+41
-33
lines changed

snippets/csharp/System/IDisposable/Overview/base1.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
// <Snippet3>
2-
using Microsoft.Win32.SafeHandles;
32
using System;
3+
using System.IO;
44
using System.Runtime.InteropServices;
55

66
class BaseClass1 : IDisposable
77
{
88
// Flag: Has Dispose already been called?
99
bool disposed = false;
10-
// Instantiate a SafeHandle instance.
11-
SafeHandle handle = new SafeFileHandle(IntPtr.Zero, true);
10+
// Instantiate a FileStream instance.
11+
FileStream fs = new FileStream("test.txt", FileMode.OpenOrCreate);
1212

1313
// Public implementation of Dispose pattern callable by consumers.
1414
public void Dispose()
@@ -25,7 +25,7 @@ protected virtual void Dispose(bool disposing)
2525

2626
if (disposing)
2727
{
28-
handle.Dispose();
28+
fs.Dispose();
2929
// Free any other managed objects here.
3030
//
3131
}

snippets/csharp/System/IDisposable/Overview/derived1.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
// <Snippet4>
2-
using Microsoft.Win32.SafeHandles;
32
using System;
3+
using System.IO;
44
using System.Runtime.InteropServices;
55

66
class MyDerivedClass : MyBaseClass
77
{
88
// Flag: Has Dispose already been called?
99
bool disposed = false;
10-
// Instantiate a SafeHandle instance.
11-
SafeHandle handle = new SafeFileHandle(IntPtr.Zero, true);
10+
// Instantiate a FileStream instance.
11+
FileStream fs = new FileStream("test.txt", FileMode.OpenOrCreate);
1212

1313
// Protected implementation of Dispose pattern.
1414
protected override void Dispose(bool disposing)
@@ -18,7 +18,7 @@ protected override void Dispose(bool disposing)
1818

1919
if (disposing)
2020
{
21-
handle.Dispose();
21+
fs.Dispose();
2222
// Free any other managed objects here.
2323
//
2424
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
module base1
22

33
// <Snippet3>
4-
open Microsoft.Win32.SafeHandles
54
open System
5+
open System.IO
66

77
type BaseClass1() =
88
// Flag: Has Dispose already been called?
99
let mutable disposed = false
1010

11-
// Instantiate a SafeHandle instance.
12-
let handle = new SafeFileHandle(IntPtr.Zero, true)
11+
// Instantiate a FileStream instance.
12+
let fs = new FileStream("test.txt", FileMode.OpenOrCreate)
1313

1414
interface IDisposable with
1515
// Public implementation of Dispose pattern callable by consumers.
@@ -22,8 +22,8 @@ type BaseClass1() =
2222
override _.Dispose(disposing) =
2323
if not disposed then
2424
if disposing then
25-
handle.Dispose()
25+
fs.Dispose()
2626
// Free any other managed objects here.
2727
disposed <- true
2828

29-
// </Snippet3>
29+
// </Snippet3>

snippets/fsharp/System/IDisposable/Overview/derived1.fs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module derived1
22
open System
3+
open System.IO
34

45
type MyBaseClass() =
56
// Flag: Has Dispose already been called?
@@ -30,18 +31,18 @@ type MyDerivedClass() =
3031

3132
// Flag: Has Dispose already been called?
3233
let mutable disposed = false
33-
// Instantiate a SafeHandle instance.
34-
let handle = new SafeFileHandle(IntPtr.Zero, true)
34+
// Instantiate a FileStream instance.
35+
let fs = new FileStream("test.txt", FileMode.OpenOrCreate)
3536

3637
// Implementation of Dispose pattern.
3738
override _.Dispose(disposing) =
3839
if not disposed then
3940
if disposing then
40-
handle.Dispose()
41+
fs.Dispose()
4142
// Free any other managed objects here.
4243

4344
// Free any unmanaged objects here.
4445
disposed <- true
4546
// Call base class implementation.
4647
base.Dispose disposing
47-
// </Snippet4>
48+
// </Snippet4>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net6.0</TargetFramework>
5+
</PropertyGroup>
6+
7+
</Project>

snippets/visualbasic/VS_Snippets_CLR_System/system.idisposable/vb/base1.vb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
Option Strict On
33

44
' <Snippet3>
5-
Imports Microsoft.Win32.SafeHandles
5+
Imports System.IO
66
Imports System.Runtime.InteropServices
77

8-
Class BaseClass : Implements IDisposable
8+
Class BaseClass1 : Implements IDisposable
99
' Flag: Has Dispose already been called?
1010
Dim disposed As Boolean = False
11-
' Instantiate a SafeHandle instance.
12-
Dim handle As SafeHandle = New SafeFileHandle(IntPtr.Zero, True)
11+
' Instantiate a FileStream instance.
12+
Dim fs As FileStream = New FileStream("test.txt", FileMode.OpenOrCreate)
1313

1414
' Public implementation of Dispose pattern callable by consumers.
1515
Public Sub Dispose() _
@@ -23,7 +23,7 @@ Class BaseClass : Implements IDisposable
2323
If disposed Then Return
2424

2525
If disposing Then
26-
handle.Dispose()
26+
fs.Dispose()
2727
' Free any other managed objects here.
2828
'
2929
End If

snippets/visualbasic/VS_Snippets_CLR_System/system.idisposable/vb/calling2.vb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Option Strict On
55
Imports System.IO
66
Imports System.Text.RegularExpressions
77

8-
Public Class WordCount
8+
Public Class WordCount2
99
Private filename As String
1010
Private nWords As Integer
1111
Private pattern As String = "\b\w+\b"
@@ -47,9 +47,9 @@ Public Class WordCount
4747
End Class
4848
' </Snippet2>
4949

50-
Public Module Example
50+
Public Module Example2
5151
Public Sub Main()
52-
Dim wc As New WordCount("C:\users\ronpet\documents\Fr_Mike_Mass.txt")
52+
Dim wc As New WordCount2("C:\users\ronpet\documents\Fr_Mike_Mass.txt")
5353
Console.WriteLine("File {0} ({1}) has {2} words",
5454
wc.Name, wc.FullName, wc.Count)
5555
End Sub

snippets/visualbasic/VS_Snippets_CLR_System/system.idisposable/vb/derived1.vb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22
Option Strict On
33

44
' <Snippet4>
5-
Imports Microsoft.Win32.SafeHandles
5+
Imports System.IO
66
Imports System.Runtime.InteropServices
77

8-
Class DerivedClass : Inherits BaseClass
8+
Class DerivedClass2 : Inherits BaseClass2
99
' Flag: Has Dispose already been called?
1010
Dim disposed As Boolean = False
11-
' Instantiate a SafeHandle instance.
12-
Dim handle As SafeHandle = New SafeFileHandle(IntPtr.Zero, True)
11+
' Instantiate a FileStream instance.
12+
Dim fs As FileStream = New FileStream("test.txt", FileMode.OpenOrCreate)
1313

1414
' Protected implementation of Dispose pattern.
1515
Protected Overrides Sub Dispose(disposing As Boolean)
1616
If disposed Then Return
1717

1818
If disposing Then
19-
handle.Dispose()
19+
fs.Dispose()
2020
' Free any other managed objects here.
2121
'
2222
End If
@@ -31,7 +31,7 @@ Class DerivedClass : Inherits BaseClass
3131
End Class
3232
' </Snippet4>
3333

34-
Class BaseClass : Implements IDisposable
34+
Class BaseClass2 : Implements IDisposable
3535
' Flag: Has Dispose already been called?
3636
Dim disposed As Boolean = False
3737

snippets/visualbasic/VS_Snippets_CLR_System/system.idisposable/vb/derived2.vb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Option Strict On
33

44
' <Snippet6>
5-
Class DerivedClass : Inherits BaseClass
5+
Class DerivedClass : Inherits BaseClass3
66
' Flag: Has Dispose already been called?
77
Dim disposed As Boolean = False
88

@@ -29,7 +29,7 @@ Class DerivedClass : Inherits BaseClass
2929
End Class
3030
' </Snippet6>
3131

32-
Class BaseClass : Implements IDisposable
32+
Class BaseClass3 : Implements IDisposable
3333
' Flag: Has Dispose already been called?
3434
Dim disposed As Boolean = False
3535

0 commit comments

Comments
 (0)