փաստաթղթերը ասում է
Դուք պետք է կիրառեք IDisposable-ը միայն այն դեպքում, եթե ձեր տեսակն ուղղակիորեն օգտագործում է չկառավարվող ռեսուրսներ:
Գալով հիմնականում Java ֆոնից, սա ինձ համար տարօրինակ է թվում: Ենթադրենք, ես ունեմ դաս, որը պարունակում է IDdisposable անդամ.
class Foo : IDisposable {
private StreamWriter sw;
...
}
... և ենթադրենք, որ այս դասը օգտագործվում է, օրինակ, որպես մի տեսակ զտիչ, որը վերցնում է տողերը և փոփոխում դրանք, այնուհետև դրանք դուրս է բերում StreamWriter sw
-ով: Ես ուզում եմ այս դասը օգտագործել գրողի պես:
Ինչու ես չէի ցանկանա իրականացնել Dispose(bool)
-ը, որը կկոչեր sr.Dispose()?
Սա այն է, ինչ ես պետք է անեի, եթե այն կոդավորեի Java-ում (Java Closable
ինտերֆեյսը նման է .NET-ի IDisposable
-ին, թեև որոշ առումներով տարբերվում է): Այնուամենայնիվ, փաստաթղթերում ասվում է, որ ես չպետք է օգտագործեմ, քանի որ ես ուղղակիորեն չեմ օգտագործում չկառավարվող ռեսուրսները:
Եթե ես չշրջանցեմ Dispose(bool)
-ը, ինչպե՞ս է տնօրինվում sw
ռեսուրսը, երբ ես հեռանում եմ using
հայտարարությամբ սկսված բլոկից: