为何有些类中有Dispose方法?

简介:

在使用Stream对象,transactionScop,socket对象时,我们往往会发现在它的内部有一个Dispose()方法,它是干什么用的呢?这要从微软的代码托管开始说起,所谓托管,就是不需要程序员自己去干涉内部分配与销毁,从对象的建立到销毁的过程完全由.net来帮我们去实现。

.net为提供的类库有两种,即“托管类库”和“非托管类库”,像自定义的类,值类型等,它一般来说,执行的结果可以预知,这时.net帮助我们去管理对象;而如果你要实现,网络上的传递,文件的传递,向服务器发包这些操作,都是系统未知的,即不知道什么时候能执行结束,这时,它们的对象释放,则需要自己去实现,例如:

1 using System;
2 public void Dispose ()
3 {
4     this.Dispose (true);
5     GC.SuppressFinalize (this);
6 }

这是mvc构造中controller类的实现,它也是非托管的类库,与此同时,还是stream。

事实上,今天通过一个小例子,让我们知道了,.net中不是所有的对象都是可以先被定义的。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:为何有些类中有Dispose方法?,如需转载请自行联系原博主。

目录
相关文章
|
6月前
|
Java
怎么用super调用超类构造函数?
Java 中的 `super` 关键字用于子类引用父类的构造函数和成员。当子类构造函数需要调用父类的构造函数时,`super` 须作为第一条语句,如 `super(param列表);`,这允许子类初始化父类的属性。示例中,`BoxWeight` 类通过 `super(w, h, d)` 调用 `Box` 的构造函数来设置尺寸,而 `BoxWeight` 自己仅设置重量。`super` 也可用于访问被子类隐藏的父类成员,实现封装。
|
8月前
|
C++
c++将一个类的回调函数注入到另一个类中的方法
c++将一个类的回调函数注入到另一个类中的方法
|
Java 开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
194 0
Class 类对象的三种实例化模式|学习笔记
|
Java
java方法重写(Override)
1.重写的概念 重写是子类对父类(或爷爷及以上类)的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 2.实现一个简单的Demo 父类:
132 0
java方法重写(Override)
|
设计模式 存储 安全
C++的单例模式为什么不直接全部使用static,而是非要实例化一个对象?
C++的单例模式为什么不直接全部使用static,而是非要实例化一个对象?
511 1
C++的单例模式为什么不直接全部使用static,而是非要实例化一个对象?
|
Java
父类 子类 的 静态域,main(),构造代码块,构造方法 如何执行????
父类 子类 的 静态域,main(),构造代码块,构造方法 如何执行????
88 0
|
Java 开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
435 0
 Class  类对象的三种实例化模式|学习笔记
重写父类方法和调用父类方法
class Animal(object): def eat(self): print("-----吃-----") def drink(self): print("-----喝-----") class Dog(Animal): def...
916 0
继承、super、重写
整体与部分(has a关系)例如:球队与球员 继承 注意细节: 1.子类可以继承父类的成员,但是千万不要为了减少重复代码去继承,只有正真存在继承的时候才去继承 2.
641 0

热门文章

最新文章