C# 中的构造函数

类的 构造函数 是类的一个特殊的成员函数,当创建类的新对象时执行。

构造函数的名称与类的名称完全相同,它没有任何返回类型。

下面的实例说明了构造函数的概念:

  1. using System;
  2. namespace LineApplication
  3. {
  4. class Line
  5. {
  6. private double length; // 线条的长度
  7. public Line()
  8. {
  9. Console.WriteLine("对象已创建");
  10. }
  11.  
  12. public void setLength( double len )
  13. {
  14. length = len;
  15. }
  16. public double getLength()
  17. {
  18. return length;
  19. }
  20.  
  21. static void Main(string[] args)
  22. {
  23. Line line = new Line();
  24. // 设置线条长度
  25. line.setLength(6.0);
  26. Console.WriteLine("线条的长度: {0}", line.getLength());
  27. Console.ReadKey();
  28. }
  29. }
  30. }

当上面的代码被编译和执行时,它会产生下列结果:

  1. 对象已创建
  2. 线条的长度: 6

默认的构造函数没有任何参数。但是如果您需要一个带有参数的构造函数可以有参数,这种构造函数叫做参数化构造函数。这种技术可以帮助您在创建对象的同时给对象赋初始值,具体请看下面实例:

  1. using System;
  2. namespace LineApplication
  3. {
  4. class Line
  5. {
  6. private double length; // 线条的长度
  7. public Line(double len) // 参数化构造函数
  8. {
  9. Console.WriteLine("对象已创建,length = {0}", len);
  10. length = len;
  11. }
  12.  
  13. public void setLength( double len )
  14. {
  15. length = len;
  16. }
  17. public double getLength()
  18. {
  19. return length;
  20. }
  21.  
  22. static void Main(string[] args)
  23. {
  24. Line line = new Line(10.0);
  25. Console.WriteLine("线条的长度: {0}", line.getLength());
  26. // 设置线条长度
  27. line.setLength(6.0);
  28. Console.WriteLine("线条的长度: {0}", line.getLength());
  29. Console.ReadKey();
  30. }
  31. }
  32. }

当上面的代码被编译和执行时,它会产生下列结果:

  1. 对象已创建,length = 10
  2. 线条的长度: 10
  3. 线条的长度: 6

C# 中的析构函数

类的 析构函数 是类的一个特殊的成员函数,当类的对象超出范围时执行。

析构函数的名称是在类的名称前加上一个波浪形(~)作为前缀,它不返回值,也不带任何参数。

析构函数用于在结束程序(比如关闭文件、释放内存等)之前释放资源。析构函数不能继承或重载。

下面的实例说明了析构函数的概念:

  1. using System;
  2. namespace LineApplication
  3. {
  4. class Line
  5. {
  6. private double length; // 线条的长度
  7. public Line() // 构造函数
  8. {
  9. Console.WriteLine("对象已创建");
  10. }
  11. ~Line() //析构函数
  12. {
  13. Console.WriteLine("对象已删除");
  14. }
  15.  
  16. public void setLength( double len )
  17. {
  18. length = len;
  19. }
  20. public double getLength()
  21. {
  22. return length;
  23. }
  24.  
  25. static void Main(string[] args)
  26. {
  27. Line line = new Line();
  28. // 设置线条长度
  29. line.setLength(6.0);
  30. Console.WriteLine("线条的长度: {0}", line.getLength());
  31. }
  32. }
  33. }

C# 中的构造函数与析构函数的更多相关文章

  1. python中的构造函数和析构函数

    python中的特殊方法,其中两个,构造函数和析构函数的作用: 比说“__init__”这个构造函数,具有初始化的作用,也就是当该类被实例化的时候就会执行该函数.那么我们就可以把要先初始化的属性放到这 ...

  2. C++中的构造函数和析构函数

    构造函数: 在类实例化对象时自动执行,对类中的数据进行初始化.构造函数可以从载,可以有多个,但是只能有一个缺省构造函数. 析构函数: 在撤销对象占用的内存之前,进行一些操作的函数.析构函数不能被重载, ...

  3. 菜鸟谈谈C#中的构造函数和析构函数

    本节说明对象的创建.初始化和销毁过程.本节介绍下列主题: l         类构造函数 l         结构构造函数 l         析构函数 类构造函数 本节将讨论三种类构造函数: 类构造 ...

  4. 005_python中的构造函数和析构函数

    python中的特殊方法,其中两个,构造函数和析构函数的作用: 比说“__init__”这个构造函数,具有初始化的作用,也就是当该类被实例化的时候就会执行该函数.那么我们就可以把要先初始化的属性放到这 ...

  5. php中的构造函数与析构函数

    PHP面向对象——构造函数.析构函数 __construct.__destruct__construct 构造方法,当一个对象创建时调用此方法,使用此方法的好处是:可以使构造方法有一个独一无二的名称, ...

  6. C++类继承中的构造函数和析构函数 调用顺序

    思想: 在C++的类继承中,构造函数不能被继承(C11中可以被继承,但仅仅是写起来方便,不是真正的继承) 建立对象时,首先调用基类的构造函数,然后在调用下一个派生类的构造函数,依次类推: 析构对象时, ...

  7. C++中的构造函数与析构函数及组合类的调用

    // 构造函数与析构函数及类的组合 #include "stdafx.h"#include <iostream>using namespace std; //枚举enu ...

  8. (C++)C++类继承中的构造函数和析构函数

    思想: 在C++的类继承中, 建立对象时,首先调用基类的构造函数,然后在调用下一个派生类的构造函数,依次类推: 析构对象时,其顺序正好与构造相反: 例子: #include <iostream& ...

  9. c++ 16 this 和 继承 及继承机制中的构造函数 与 析构函数

    #include <iostream> #include <string> using namespace std; class Animal { public: Animal ...

随机推荐

  1. Centos7利用kvm搭建Windows虚拟机

    这几天玩了一下kvm虚拟化,真的很有意思,我把这几天踩的坑,还有收获,都记录下来,作为以后的复习和检查. 首先说一下我的基本逻辑,我有一台win7的笔记本,我的底层虚拟化是使用VMWare构建的Cen ...

  2. Shell中括号的作用

    Shell中括号的作用 作者:Danbo 时间:2015-8-7 单小括号() ①.命令组.括号中的命令将会断开一个子Shell顺序执行,所以括号中的变量不能被脚本余下的部分使用.括号中多个命令之间用 ...

  3. 周期性计划(一个cron守护进程):

    周期性计划(一个cron守护进程): root@ubuntu:/etc# ps -ef | grep cron root 903 1 0 16:25 ? 00:00:00 /usr/sbin/cron ...

  4. php钩子技术

    通过对钩子技术的理解,下面把自己对钩子技术的总结如下:"钩子就是在调用php核心功能代码的同时可以在不修改核心代码的同时,更改核心代码的行为";具体模拟实现如下 /** * php ...

  5. RabbitMQ的安装与客户端的简单实用

    本文主要内容是RabbitMQ的安装步骤[Windows系统与linux上的安装]及客户端的简单使用. 1.下载 下载地址:http://www.rabbitmq.com/download.html ...

  6. margin在块元素、内联元素中的区别 padding

    (1)margin在块元素.内联元素中的区别 HTML(这里说的是html标准,而不是xhtml)里分两种基本元素,即block和inline.顾名思义,block元素就是以”块”表现的元素(bloc ...

  7. 记录下linux好用的命令

    http://mp.weixin.qq.com/s/LU1iAWfssv1x-QMX6hJqmQ

  8. Android记录程序崩溃Log写入文件

    将导致程序崩溃的堆栈调用Log写入文件,便于收集bug.在调试安卓程序,由于某些原因调试时手机不能连接PC端,无法通过IDE查看程序崩溃的Log,希望log能够写入文件中,对于已经发布的App可以通过 ...

  9. 【转载】Android进程保活招式大全

    原文地址:http://dev.qq.com/topic/57ac4a0ea374c75371c08ce8 目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题.本文对 An ...

  10. 【C/C++】产生随机数

    #include<iostream> #include<Ctime> #include<Cstdlib> using namespace std; //产生n个st ...