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

news/2025/10/14 18:40:30/文章来源:https://www.cnblogs.com/slgkaifa/p/19141772

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.mzph.cn/news/937007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

说说新版畅联云的一些重要约定

先了解几个基本概念:品目类似文件夹,而且从顶级来看,畅联将AIoT分成了3大分类,一个是视频设备,一个是IoT设备,一个是算法。品目是无限级的,可以一层层建一下。产品产品属于某一个具体品目,譬如某个4G安全帽产品…

App.vue(完整可运行示例)

🔧 TXT 文件 URL 批量替换工具将文件中的 https://alicdn-imags.zsgw.vip/default/20250826/imags 替换为 https://site.shrtxs.cn/agent <div><inputtype="file"ref="fileInput"@chan…

Windows MySQL 报错

1. 首次更改密码报错解决 ERROR 1820 (HY000) ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 问题解决修改密码 ALTER USER username@host IDENTIF…

Redis:高性能内存数据库的六大核心优势 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

lvgl刷新回调事件实现说明

static void my_lvgl_flush_cb(lv_disp_drv_t* disp_drv, const lv_area_t* area, lv_color_t* color_p) {lock(1); #if 1uint32_t offset = 0;int32_t x, y;for (y = area->y1; y <= area->y2; y++) {for (x…

Avalonia Behaviors 在 StackPanel 空白处无效问题解析与解决方案

问题描述 在 Avalonia UI 开发中,很多开发者会遇到这样的问题:在 StackPanel 上添加了 Behaviors 和事件触发器,但是只有在 StackPanel 内部的文本、按钮等可视化元素上点击才有效,而在 StackPanel 的空白区域点击…

完整教程:Django 入门:快速构建 Python Web 应用的强大框架

完整教程:Django 入门:快速构建 Python Web 应用的强大框架pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

Hyperliquid 的稳定币USDH发行机制与发行商竞选指南

引言:稳定币是什么,为什么 Hyperliquid 需要它? 想象一下,在加密货币世界里,价格像过山车一样波动,你需要一个“稳定锚”来固定价值——这就是稳定币(Stablecoin)。稳定币是一种设计成与美元或其他资产挂钩的加…

windows上建简单的ssh版git仓库

说来话长,公司用的svn,内网,我想弄个简单的git仓库客户端自己用,问了好久的AI,真垃圾的这个AI。 过程如下: 1、Windows自带的OpenSSH 自己找找网上怎么开启,没有的话离线下载: 离线下载 2、安装git,这里就不说…

2025年聚合硫酸铁供应厂家如何选?行业权威指南与成本控制策略?

文章摘要 本文深入分析2025年聚合硫酸铁供应市场趋势,从生产技术、质量把控、成本优化等多维度解析如何选择靠谱供应商。以铜陵君尔源环保科技为例,通过实际案例揭示优质厂家的核心优势,为企事业单位提供科学的采购…

高级语言程序第一次作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/13558 学号:102500332 姓名:郑雷 1.成功安装编译环境结果如图 捕获 2…

MCP信任遭遇首次野外攻击:通过仿冒Postmark连接器窃取邮件

恶意npm包"postmark-mcp"通过隐藏密送功能窃取数千封邮件,这是MCP协议首次在野外遭遇信任滥用攻击,暴露出AI连接器协议安全防护不足的严重问题。在一场新披露的供应链攻击中,npm包"postmark-mcp&quo…

Windows MySQL 管理

启动及关闭 MySQL 服务器 Windows 系统下 启动 MySQL 服务器: 1、通过 "服务" 管理工具: 打开"运行"对话框(Win + R),输入 services.msc,找到"MySQL"服务,右击选择"启动&quo…

Hyperbeat Earn 套利指南:新手也能玩转 DeFi 赚钱术

引言:Hyperbeat Earn 是什么,为什么适合套利? 想象一下,你在银行借钱利率低,然后把钱存到另一个高息账户赚差价——这就是“套利”(arbitrage)的简单版。在 DeFi(去中心化金融)世界,Hyperbeat Earn(网址:h…

数据流通合规新基建 隐私计算平台的三重安全防线

在数字经济时代,数据要素的流通已成为推动产业创新的核心动力,但随之而来的隐私泄露、合规风险与信任壁垒等问题也日益凸显。埃文科技的隐私计算平台(PrivLink)通过构建架构层、控制层、认证层三重安全防线,为数据…

如何在AutoCAD中管理GIS属性表?

借助GIS4CAD插件,可以在AutoCAD中像ArcGIS一样管理GIS属性表,包括:添加字段、查找替换、属性查询、批量赋值、几何计算、导出Excel等一系列实用功能,广泛应用于建库汇交等各种GIS数据管理场景。使用GIS4CAD,不懂G…

详细介绍:跨平台UMEDITOR如何实现Word/Excel/PPT的统一格式管理?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

小程序分享

https://article.juejin.cn/post/7242134982218399804

21届acm线下密码题目real_easy_rsa

参加了湖南省线下的acm程序设计大赛中的网络攻防赛事,拼尽全力拿的二等奖。作为二进制手觉得题目难度还是在的,所以决定复现一下。 crypto:Real_eazy_RSA 根据题目是一个rsa的题目,题目给了加密文件的附件,附件代码…