type
status
date
slug
summary
tags
category
icon
password
Property
Jul 24, 2023 09:01 AM

本节内容

方法的由来
方法的定义与调用
构造器(一种特殊的方法)
方法的重载(Overload)
如何对方法进行debug
方法的调用与栈

构造器

构造器(constructor)是类型的成员之一
狭义的构造器指的是“实例构造器”(instance constructor)
如何调用构造器
构造器的内存原理
 
构造器是特殊的函数

实例构造器

快捷键:ctor

构造器的内存原理

int 结构体类型4字节,string class 类型,引用类型,4字节,存储实例地址
栈内存分配的时候是从比较高的地址往低的地址分配,直到栈顶就是栈溢出
notion image
还有可能会出现两次内存的转储
notion image

方法的重载(Overload)

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

如何对方法进行debug

设置断点(breakpoint)
观察方法调用时的call stack
Step-in,Step-over,Step-out
观察局部变量的值与变化
notion image
红色的就是有变化的
notion image
还有pin功能
notion image

方法的调用与栈

  • 方法调用时栈内存的分配
    • 堆 stack frame的分析
主调用caller,被调用callee
C#函数调用的参数被caller 主调用管理
局部变量压到栈里面去
栈里面除了变量,还有方法的内存地址等,方便运行完跳转
函数返回值一般放在CPU的寄存器里面,但是存不下的话会在栈上开辟空间
notion image
运行结束会清空内存
notion image
推荐看下这部分的视频 https://youtu.be/CNlNWvn6E9Y?t=3100

学习视频

Video preview
C#知识学习—08 操作符详解(2)C#知识学习—07 操作符详解(1)
  • Waline
Kitety
Kitety
独特为佳
公告
我曾经七次鄙视自己的灵魂
--卡里·纪伯伦
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。
 
最新评论
Loading...