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字节,存储实例地址
栈内存分配的时候是从比较高的地址往低的地址分配,直到栈顶就是栈溢出
还有可能会出现两次内存的转储
方法的重载(Overload)
带有重载方法的示例
声明带有重载的方法
- 方法签名(method signature)由方法的名称、类型参数的个数和他的每一个形参(按从左到右的顺序)的类型和种类(值、引用或输出)组成。方法签名不包含返回类型
- 实例构造函数签名由它的每一个形参(按从左到右的顺序)的类型和种类(值、引用或输出)组成
- 重载决策(到底调用哪一个重载):用于再给定了参数列表和一组候选函数成员的情况下,选择一个最佳函数成员来实施调用
重载决策
如何对方法进行debug
设置断点(breakpoint)
观察方法调用时的call stack
Step-in,Step-over,Step-out
观察局部变量的值与变化
红色的就是有变化的
还有pin功能
方法的调用与栈
- 方法调用时栈内存的分配
- 堆 stack frame的分析
主调用caller,被调用callee
C#函数调用的参数被caller 主调用管理
局部变量压到栈里面去
栈里面除了变量,还有方法的内存地址等,方便运行完跳转
函数返回值一般放在CPU的寄存器里面,但是存不下的话会在栈上开辟空间
运行结束会清空内存
推荐看下这部分的视频 https://youtu.be/CNlNWvn6E9Y?t=3100
学习视频
- 作者:Kitety
- 链接:https://www.kitety.com/article/C-sharp-leraning-method-2
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章