为何有些类中有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方法?,如需转载请自行联系原博主。

目录
相关文章
|
2月前
|
Java
怎么用super调用超类构造函数?
Java 中的 `super` 关键字用于子类引用父类的构造函数和成员。当子类构造函数需要调用父类的构造函数时,`super` 须作为第一条语句,如 `super(param列表);`,这允许子类初始化父类的属性。示例中,`BoxWeight` 类通过 `super(w, h, d)` 调用 `Box` 的构造函数来设置尺寸,而 `BoxWeight` 自己仅设置重量。`super` 也可用于访问被子类隐藏的父类成员,实现封装。
|
4月前
|
存储 Java 编译器
类、对象、方法
摘要: 本文介绍了面向对象编程的概念,以京东购买手机为例,展示了如何通过分类和参数选择商品,强调软件与现实生活的对应关系。柯南三步走揭示了京东如何通过搜索和筛选帮助用户找到所需商品,而这一切背后的编程思想即为面向对象编程。面向对象编程涉及抽象、自定义类型和实例化对象等步骤,其中自定义类型(如Java中的类)用于封装现实生活中的复杂数据。文章还讲解了如何定义类、实例化对象以及访问权限修饰符、构造方法、this关键字、方法的使用,强调了方法参数和返回值在不同数据类型上的处理差异。整个讨论旨在阐明Java中面向对象编程的基本原理和实践应用。
34 5
|
开发框架 .NET
实例化对象时的()什么意思?
实例化对象时的()什么意思?
|
Java 开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
157 0
Class 类对象的三种实例化模式|学习笔记
|
Java
java方法重写(Override)
1.重写的概念 重写是子类对父类(或爷爷及以上类)的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 2.实现一个简单的Demo 父类:
108 0
java方法重写(Override)
|
程序员
Object类中的方法
Object类中的方法
|
Java 开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
413 0
 Class  类对象的三种实例化模式|学习笔记
|
算法 安全 IDE
如何重写object虚方法
如何重写object虚方法
95 0
|
测试技术
Object C学习笔记23-继承,重写,重载
  前面的学习都一直在使用Object C对象,但是没有具体总结过Object C中的对象使用特性,这里简单总结一下。   一.  继承     在面向对象编程中,子类可以通过继承得到父类的可以继承的的属性和方法,在Object C中也同样如此。
796 0
类的父类object的一些属性、方法
# class Test: # """文档字符串""" # name = 'scolia' # # print(Test.__doc__) # 提醒一下,函数是help(),实例也可以访问,但是子类并不会继承父类的文档字符串 # print(Test.
820 0