C#编程-使用构造函数和析构函数

在这里插入图片描述

在这里插入图片描述

使用构造函数和析构函数

如果想要在以创建对象时就初始化成员变量,可以创建名为构造函数的特殊函数。您可能还需要使用对象后从内存中删除这些对象。这可通过称为析构函数的函数实现。

实现构造函数

构造函数是在创建对象时自动调用的特殊方法。无须显式地调用构造函数。请思考以下代码,它显示了如何编写一个需要显示调用的初始化函数:

	using System;
	namespace Calc
	{
   
		class Calculator
		{
   
			int number1,number2,total;
			public void Intialize()
			{
   
				number1 = 10;
				number2 = 20;
			}
			public void AddNumber()
			{
   
				total = number1 + number2;
			}
			public void DisplayName()
			{
   
				Console.WriteLine("The Total is :{0}",total);
			}
			public static void Main(string[] args)
			{
   
				Calculator c1 = new Calculator();
				c1.Intialize();
				c1.AddNumber();
				c1.DisplayNumber();
			}
		}
	}

在上述代码中,Calculator类的c1对象调用Initialize()方法以初始化数据成员number1和number2.这是对初始化函数的显式调用。

除了初始化数据成员之外,还有某些您想在每当创建对象时执行的代码。为了避免显式调用以执行这类数据初始化和其他任务,面向对象编程能让您在创建类的对象时在类中包含特殊的成员函数。可以使用该成员函数来执行需要在创建对象时执行的各种任务,例如:初始化数据成员、检查所需的磁盘空间或创建新文件。这类成员函数称为类的构造函数。构造函数与其类同名。

以下代码显示了程序中构造函数的用法:

	using System;
	public class Sample
	{
   
		int number1;
		int number2;
		// Constructors have the same name as the class.
		Sample()
		{
   
			number1 = 10;
			number2 = 3;
		}
		

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/289010.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

麒麟云增加计算节点

一、安装基座系统并配置好各项设置 追加的计算节点服务器,安装好系统,把主机名、网络网线(网线要和其他网线插的位置一样)、hosts这些配置好,在所有节点的/etc/hosts里面添加信息 在控制节点添加/kylincloud/multinod…

前端工程化回顾-vite 构建神器

1.构建vite 项目 pnpm create vite2.常用的配置: 1.公共资源路径配置: base: ./, 默认是/2.路径别名配置: resolve: {alias: {: path.resolve(__dirname, ./src),ass: path.resolve(__dirname, ./src/assets),comp: path.resolve(__dirnam…

单机游戏数据自动保存方案

引言 单机游戏数据的自动保存方案 大家好,2023年还有最后的3天! 有小伙伴私信我,说: 总感觉一股脑的全盘定时保存不科学,也写过保存变化的玩家数据,但是改完数据就得手动标记一下字段变化,感觉不够智能&…

Amos各版本安装指南

Amos下载链接 https://pan.baidu.com/s/1uyblN8Q-knNKkqQVlNnXTw?pwd0531 1.鼠标右击【Amos28】压缩包(win11及以上系统需先点击“显示更多选项”)选择【解压到 Amos28】。 2.打开解压后的文件夹,鼠标右击【Amos28】选择【以管理员身份运行…

BUUCTF--ciscn_2019_s_91

先看保护: 发现保护全没开,紧接着看看程序执行流程: 经过测试发现了段错误,这肯定就是栈溢出了。因此我们在IDA中看看具体逻辑: 程序主要就这个功能,我们还在程序中发现一个函数: 一段汇编&…

DataLoader与Dataset

一、人民币二分类 二、DataLoader 与 Dataset DataLoader torch.utils.data.DataLoader 功能:构建可迭代的数据装载器 (只标注了较为重要的) • dataset: Dataset类,决定数据从哪读取及如何读取 • batchsize : 批大小 • num_…

广告公司项目管理工具推荐:高效管理订单与项目的利器

由于广告公司每年都需要处理数千个制作订单,包括促销广告预告片和海报等,迫切需要一款能够高效管理和生产广告流程的软件。 在实施采购项目管理工具之前,广告公司的流程相当繁复,员工们需要使用约10到15个不同的Excel表格&#xf…

vue-element-admin请求接口时报错:431 Request Header Fields Too Large

vue-element-admin请求接口时报错:431 Request Header Fields Too Large 1、使用vue-element-admin框架开发运行后报错431,在网上也找了一些解决方案,有说是生成的Token太大导致的报错,也说有可能是NGINX后台设置的提交大小限制。…

QT的信号与槽

QT的信号与槽 文章目录 QT的信号与槽前言一、QT 打印"hello QT"的dome二、信号和槽机制?二、信号与槽的用法1、QT5的方式1. 无参的信号与槽的dome2.带参的信号与槽dome 2、QT4的方式3、C11的语法 Lambda表达式1、函数对象参数2、操作符重载函数参数3、可修…

为什么JAVA_HOME修改后Java版本不变

今天的实验需要对java project进行降版本后重构。于是去Oracle官网下载了jdk1.7。然后将系统环境变量JAVA_HOME改成了安装后的jdk1.7路径。即 C:\Program Files\Java\jdk1.7.0_80 系统变量Path中直接引用了%JAVA_HOME%\bin。 但是当我查看版本,却出现了javac改了…

stable diffusion 基础教程-提示词之光的用法

基图 prompt: masterpiece,best quality,1girl,solo,looking at viewer,brown hair,hair between eyes,bangs,very long hair,red eyes,blush,bare shoulders,(white sundress),full body,leaning forward,medium breasts,unbuttoned clothes,Negative prompt: EasyNegativ…

GraalVM Native学习及使用

概述 在开发Spring Boot 应用或者其他JAVA程序的过程中,启动慢、内存占用大是比较头疼的问题,往往需要更多的资源去部署,成本大幅提高。为了优化上述问题,常常使用优化程序、使用更小消耗的JVM、使用容器等措施。 现在有一个叫做…

工作流入门这篇就够了!

总概 定义:工作流是在计算机支持下业务流程的自动或半自动化,其通过对流程进行描述以及按一定规则执行以完成相应工作。 应用:随着计算机技术的发展以及工业生产、办公自动化等领域的需求不断提升,面向事务审批、材料提交、业务…

在Cadence中单独添加或删除器件与修改网络的方法

首先需要在设置中使能 ,添加或修改逻辑选项。 添加或删除器件,点击logic-part,选择需要添加或删除的器件,这里的器件必须是PCB中已经有的器件,Refdes中输入添加或删除的器件标号,点击Add添加。 添加完成后就会显示在R1…

学习笔记240102 --- 表单无法输入,是否data中没有提前声明导致的

前端框架 &#xff1a;vue2.x 第三方ui组件&#xff1a;ElementUI 操作系统&#xff1a;windows 浏览器&#xff1a;chrome 谷歌 问题描述 表单使用中&#xff0c;没有在data中提前声明参数&#xff0c;当数据回显时&#xff0c;表单无法输入 <el-form :model"queryPa…

【力扣100】39.组合总和

添加链接描述 class Solution:def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:def backtrack(path,target,res,index):if target0:res.append(path[:])returnif target<0:return for i in range(index,len(candidates)):if target&g…

3个.NET开源简单易用的任务调度框架

前言 今天分享3个.NET开源、简单、易用的任务调度框架&#xff0c;帮助大家在做定时任务调度框架技术选型的时候有一个参考。 Quartz.Net Quartz.NET是一个功能齐全的开源作业调度系统&#xff0c;可用于从最小的应用程序到大规模企业系统。 Quartz.NetUI Quartz.NetUI是一…

算法导论复习——CHP25 多源最短路

问题描述 给定一个带权重的有向图G(V,E)&#xff0c;其权重函数为ω:E→R。 在图中&#xff0c;对所有的结点对 u,v∈V&#xff0c;找出从结点u到结点v的最短路径。 该问题的解以表格&#xff08;二维数组&#xff09;的形式给出&#xff1a;第u行第v列给出从结点u到结…

计算机毕业设计 基于SpringBoot的工作量统计系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

MySQL中的事务到底是怎么一回事儿

简单来说&#xff0c;事务就是要保证一组数据库操作&#xff0c;要么全部成功&#xff0c;要么全部失败。在MySQL中&#xff0c;事务支持是在引擎层实现的&#xff0c;但并不是所有的引擎都支持事务&#xff0c;如MyISAM引擎就不支持事务&#xff0c;这也是MyISAM被InnoDB取代的…