科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件总体了解C#(23.构造器和析构器)

总体了解C#(23.构造器和析构器)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

你可以指定可选的构造器参数:

作者:荣耀翻译 来源:soft6 2008年5月16日

关键字: 析构器 构造器 C# Windows

  • 评论
  • 分享微博
  • 分享邮件

23.构造器和析构器

你可以指定可选的构造器参数:

class Test

{

public Test () : this (0, null) {}

public Test (int x, object o) {}

}

你也可以指定静态构造器:

class Test

{

static int[] ascendingArray = new int [100];

static Test ()

{

for (int i = 0; i < ascendingArray.Length; i++)

ascendingArray [i] = i;

}

}

  析构器的命名采用C++的命名约定,使用~符号。析构器只能应用于引用类型,值类型不可以,并且不可被重载。析构器不可被显式调用,这是因为对象的生命期被垃圾收集器所管制。在对象所占用的内存被回收前,对象继承层次里的每一个析构器都会被调用。

  尽管和C++的命名相似,C#中的析构器更象Java中的finalize方法。这是因为它们都是被垃圾收集器调用而不是显式地被程序员调用。而且,就象Java的finalize,它们不能保证在各种情况下都肯定被调用(这常常使第一次发现这一点的每一个人都感到震惊)。如果你已习惯于采用确定性的析构编程模式(你知道什么时候对象的析构器被调用),当你转移到Java或C#时,你必须适应这个不同的编程模型。微软推荐的和实现的、贯穿于整个.NET框架的是dipose模式。你要为那些需要管理的外部资源(如图形句柄或数据库连接)的类定义一个dispose()方法。对于分布式编程,.NET框架提供一个约定的基本模型,以改进DCOM的引用计数问题。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章