C#高级:强大特性之Csharpe扩展方法在开发中的应用

ops/2024/10/21 23:28:58/
问题引入

public static string GetHundred(string data)
{return data.ToString()[0].ToString();
}public static int GetHundred(string data)
{return data.ToString()[0].ToString().ObjToInt();
}//在同一个类下,不允许存在同方法名同入参不同出参的情况,这种情况可以用扩展方法解决!
解决思路:使用扩展方法
public class MyClass
{public static string GetHundred(string data){return data.ToString()[0].ToString();}public static int GetHundredAsInt(string data){return data.ToString()[0].ToString().ObjToInt();}
}
demo例子:

【注意】不要和原有方法重名,否则优先执行原有方法!(比如说人家int有tostring()方法,你如果又去写一个一模一样的扩展方法,会优先执行人家的方法,如果你想更改,你可以重写/继承该方法而不是去使用扩展方法)

public static class ExpandMethod//扩展方法类名是任意起的,要求是public static{public static bool EqualsAAA(this String data)//方法名是任意起的,这里和外部一样是public static,第一个参数是:this+被扩展类型+内容参数{   //若有入参(this String data)if (data.Equals("AAA")){return true;}return false;}}class MainClass//新建一个类,在这个类中可调用写好的扩展类下的扩展方法{static void Main(string[] args){Console.WriteLine("a".EqualsAAA());//调用扩展方法,返回FalseConsole.WriteLine("as".EqualsAAA());//返回FalseConsole.WriteLine("AAA".EqualsAAA());//返回True}}
使用扩展方法好处:

1.代码整洁入参少
2.容易调用方便记(结合linq超爽)
3.链式调用更直观


http://www.ppmy.cn/ops/103882.html

相关文章

pipsetup

pip install githttps://github.com/openai/CLIP.git 应用于以pip install方式安装一个没有发布到PyPI源上的python包(有一个setup文件就行),pip可以支持git这种安装方式是因为pip支持vcs协议(version control systems版本控制系…

红帽与SUSE对RHEL/CentOS 7系列延长生命周期支持策略:保障企业Linux系统的持续安全与稳定

一、前言 昨天有幸参加了一个活动,其一主办方是SUSE,感谢SUSE的工程师提供相关信息。 在本篇文章中,我们将深入探讨两个关键的Linux操作系统支持方案:“红帽企业版 Linux 7(RHEL 7)延长生命周期支持”和“…

vscode使用

1vscode写vue代码高亮 点击文件-》首选项-》设置 或者直接快捷键ctrl, 在搜索框中输入settings.json,打开此文件 添加对.vue文件的配置 重新打开vscode就可以i了 备注:有人使用"vue",我开始也试了vue,不知道为啥不可以&#xff…

Python2.x 与 3.x 版本区别

参考: Python2.x 与 3​​.x 版本区别 | 菜鸟教程 (runoob.com) Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python 3.0 在设计的时…

Git实战精粹

一、快速入门 1. 什么是Git Git是一个分布式的版本控制软件。 软件,类似于QQ、office、dota等安装到电脑上才能使用的工具版本控制,类似于毕业论文、写文案、视频剪辑等,需要反复修改和保留原历史数据分布式 文件夹拷贝本地版本控制集中式…

Spring Cloud Consul 与 Eureka 对比:如何选择最佳服务发现工具

Spring Cloud Consul 与 Eureka 对比:如何选择最佳服务发现工具 服务发现是微服务架构中的核心组件之一,它允许服务之间在动态环境中彼此发现和通信。Spring Cloud 提供了多个服务发现工具,其中 Consul 和 Eureka 是最常用的两个。本文将深入…

Typescript 使用 Jest 进行单元测试

参考文章:快速开始Jest 安装所需依赖:npm install --save-dev ts-node jest types/jest ts-jest Jest 转换 TypeScript 代码需要ts-node添加并配置 Jest 配置文件:jest.config.ts // jest.config.ts module.exports {// TypeScript 代码预…

VIVO 相机HDR拍照流程拆解

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: HDR 场景下发 3 帧拍照请求HDR 3帧拍照请求帧(478,479 480)HDR 3帧 result callback帧HDR 算法处理5.算法编解码处理HDR 拍照lo…