当前位置: 首页 > news >正文

C#——方法的定义、调用与调试

方法的由来

方法(method)的前身是C/C++语言的函数(function)
方法是面向对象范畴的概念,在非面向对象语言中仍然称为函数
使用C/C++语言做对比

永远是类或结构体的成员
当函数以类或结构体的成员出现的时候就变成了方法,方法不能独立于类之外。
C++中是可以的,称为全局函数

是类或结构体最基本的成员之一
基本的成员只有两个——字段与方法(成员变量与成员函数),本质还是数据+算法
方法表示类或结构体能做什么事情

为什么需要方法和函数
目的1:隐藏复杂的逻辑(封装)
目的2:复用(reuse,重用)

方法的声明与调用

声明方法的语法详解
声明/定义不分家
Parameter全程“formal parameter”(形式参数
Parameter是一种变量

为方的命名规范
大小写规范
需要以动词或者动词短语作为名字

调用方法
Argument中午C#文档的官方译法为“实际参数”,简称“实参”,可理解为调用方法时的真实条件
调用方法时的argument列表要与定义方法时的parameter列表相匹配
C#是强类型语言,argument是值、prarmeter是变量,值与变量一定要相匹配,不然编译器会报错

构造器

构造器是类型的成员之一

狭义的构造器指的是“实例构造器”

构造器没有返回值,可以自定义构造器的初始值,也可以强制每次构造器都需要初始化值

namespace text
{class Program{static void Main(string[] args){Student stu1 = new Student();//默认参数Console.WriteLine(stu1.Name);Console.WriteLine(stu1.Id);Console.WriteLine("=================");Student stu2 = new Student(001,"nb");//自定义参数Console.WriteLine(stu2.Name);Console.WriteLine(stu2.Id);}}class Student{public Student(int InitId,string InitName)//强制必须初始化构造器{this.Id = InitId;this.Name = InitName;}public Student()//自定义构造器{this.Id = 1;this.Name = "No Name";}public string Name;public int Id;}
}

构造器的内存原理
构造器在栈中创建,一共占4字节内存,其中储存的是new出来的对象(实例)的地址,new出来的对象(实例)的地址在堆中,其中存储的是具体的参数。

        在自定义构造函数(即带参数的构造器)中,可能存在两次内存转储,如自定义string类型,其在堆内存储的是string实例化的对象的地址,又重新在堆中创建空间去存储真正的string实例化的对象数据。

方法的重载

声明带有重载的方法
方法签名由方法的名称、类型形参的个数和它的每一个形参(按从左到右的顺序)的类型和种类(值、引用或输出)组成。方法签名不包含返回类型
实例构造函数签名由它的每一个形参(按从左到右的顺序)的类型和种类(值、引用或输出)组成
重载决策(到底调用哪个重载):用于在给定了参数列表和一组候选函数成员的情况下,选择一个最佳函数成员来实施调用

如何对方法进行debug

设置断点、观察方法调用时的call stack、Step-in,Step-over,Step-out

方法的调用与栈

方法调用时栈内存的分配

http://www.dtcms.com/a/420100.html

相关文章:

  • 开源的容器化平台:Docker入门与核心概念解析
  • 手机网站价格小广告网页
  • 晋城市建设局网站国内编程培训机构排名
  • 08 线性回归 + 基础优化算法【动手学深度学习v2】
  • 创新为擎,绿色为基:新天力科技引领食品容器行业高质量发展新征程
  • 从 GDPR 到 ROI:一次评透海外影音数据抓取的合规与性价比
  • 商务网站规划与建设中江建设银行网站
  • 关于做书的网站专门做项目代理的网站
  • 【Vue3】v-dialog 中使用 execCommand(‘copy‘) 复制文本失效的原因与解决方案
  • lesson70:jQuery Ajax完全指南:从基础到4.0新特性及现代替代方案引言:jQuery Ajax的时代价值与演进
  • 郑州网站建设 李浩大气集团企业网站模板
  • Redis高级特性:持久化机制
  • 哈尔滨模板建站哪个品牌好网站怎么做交易
  • 城建设投资公司网站潍坊路通工程建设有限公司网站
  • 个人工作室网站如何把字体安装在wordpress
  • 轴状态读取(枚举变量直接赋值给整型变量)
  • 做哪方面的网站好呢深圳ppt设计制作公司
  • 做ppt找图片在哪个网站电商运营工作很难做吗
  • qqqqqqq
  • 如何建设网站简答题太原网站建设模板
  • GA论文阅读
  • 网站访客自己做网站设计制作
  • 网站开发外文期刊网沈阳定制网页设计
  • 一个只做百合的网站怎样在安装wordpress
  • dede做的网站被植入广告中国建筑网信息查询
  • fireworks个人网站模板诸暨市建设局官方网站
  • 泰安营销网站建设公司动画设计专业好的学校
  • CKAD-CN 考试知识点分享(19) 创建 Deployment 并指定环境变量
  • 网桥(交换机)地址学习与转发流程案例分析(一文掌握)
  • 高通平台WiFi学习--WLAN PDR 与 PD RAMdump 功能的启用、禁用及相关操作指南