c#入门-静态引用,扩展方法

news2024/10/5 16:29:38

静态引用

声明静态引用

引用命名空间时,可以在using后面加static修饰符。
然后把要引用的命名空间改为带命名空间的一个具体的类。
这称为静态引用。

using static System.Int32;
using static System.Console;
int a = Parse(ReadLine());

静态引用的效果

静态引用一个类后,可以直接使用这个类下的所有静态成员,包括:

  • 静态成员
  • 常量
  • 枚举值
  • 嵌套类

当然,如果引用的类中有同名的静态成员,还是需要通过类名来调用。
静态引用并不能使用别名。
在这里插入图片描述

扩展方法

声明扩展方法

在顶级(不是嵌套类)的静态类中,可以声明扩展方法。
声明扩展方法的语法是:
声明一个普通的带参数的静态方法,把第一个参数的类型前面加上关键字this。

static class Tesk
{
	public static int ToInt32(this string s)
	{
		return int.Parse(s);
	}
	public static bool IsNull(this string s)
	{
		return s == null || s == "";
	}
}

使用扩展方法

扩展方法除了能像原本的静态方法一样使用,还能直接从扩展的类型的实例上调用。
例如,这两个方法加了this的都是string类型。
那么声明一个string类型,然后你会发现,这个实例可以点出来扩展方法

string s = null;
s.ToInt32();

扩展方法的this参数就是调用者本身。所以需要填的参数列表需要省略第一个参数。

扩展方法的特点

扩展方法和直接调用静态方法的本质是一样的,所以扩展方法相较于正真的实例方法:

  • 在实例为null时,进入扩展方法不会报错(如果扩展方法里访问了实例的内容,还是会报错)
  • 可以为枚举添加方法
  • 在实例方法本身有同名同参数列表的方法时,扩展方法无效。
  • 在有多个同名同参数列表的方法时,无法以扩展方法形式调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81727.html

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

相关文章

VRC改模从入门到入门

第一步入门 从unity开始 bilibili超细心的unity入门教程 虽然视频很长,但是从p1看到p41就行,脚本部分完全不需要看,因为vrc上传会过滤掉不是他们的脚本的。 unity下载一定要下载2019.4.31f1版本,哔哩哔哩教程有下载unity对应版本…

基于Android的外卖App系统设计

基于Android的外卖App系统设计 摘要 随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网…

CentOS 安装 mysql 8.0

目录 下载 安装步骤 上传 解压安装 参考资料 补充报错解决 下载 MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/ 安装步骤 上传 使用xshell,连接服务器,用 rz命令接收下载的文件(该命令使用 yum…

Linux 文件属性

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。 为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 在 Linux 中我们通常使用以下两个命…

LeetCode Hot 100~Day1

目录 两数之和 两数相加 无重复字符的最长子串 最长回文子串 盛最多水的容器 删除链表的倒数第n个节点 合并两个有序链表 有效的括号 两数之和 题目链接:1.两数之和 示例 输入:nums [2,7,11,15], target 9 输出:[0,1] 解释…

ADI Blackfin DSP处理器-BF533的开发详解33:数字信号处理详解-FFT(含源代码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 FFT(Fast Fourier Transformation),即为快速傅氏变换,是离散傅氏变换的快速算法&#x…

web前端期末大作业:JavaScript大作业——福五鼠动漫网页制作(6页)带轮播图效果 学生个人单页面网页作业 学生网页设计成品 静态HTML网页单页制作

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

R语言大数据分析纽约市的311万条投诉统计可视化与时间序列分析

介绍 本文并不表示R在数据分析方面比Python更好或更快速,我本人每天都使用两种语言。这篇文章只是提供了比较这两种语言的机会。 本文中的 数据 每天都会更新,我的文件版本更大,为4.63 GB。 CSV文件包含纽约市的311条投诉。它是纽约市开放…

MySQL 数据库 C/C++ 常用函数

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

火爆出圈的OpenAI模型ChatGPT体验

1、ChatGPT简要介绍 ChatGPT是一种高效的语言模型,全称为"聊天式自动回复生成技术"(Chat-based Automatic Reply Generation Technology),用于预测人类语言的后续内容。它是基于OpenAI的GPT-3模型构建的,具…

XCIE-HUAWEI-超级完整的BGP-1

XCIE-HUAWEI-超级完整的BGP-1 声明,内容对比前面的可能差一点,因为这个BGP我是会的,但是华为的特性啥的不太会 所以相对来说可能没那么详细,不过应该也够的了,要看思科的翻我的文章去有思科的 先说一个东西 面试会问…

S7-200SMART实现MODBUS TCP通信(客户端+服务器)的具体方法和步骤示例

S7-200SMART实现MODBUS TCP通信(客户端+服务器)的具体方法和步骤示例 STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,安装软件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 项目树中“指令”文件夹的“库”文件夹中。 如下图Modbus TCP库指令…

R语言曲线回归:多项式回归、多项式样条回归、非线性回归数据分析

最近我们被客户要求撰写关于曲线回归的研究报告,包括一些图形和统计输出。本文将使用三种方法使模型适合曲线数据:1)多项式回归;2)用多项式样条进行B样条回归;3) 进行非线性回归。在此示例中&am…

微信小程序 | 一比一复刻世界杯点球大战

📌个人主页:个人主页 ​🧀 推荐专栏:小程序开发成神之路 --【这是一个为想要入门和进阶小程序开发专门开启的精品专栏!从个人到商业的全套开发教程,实打实的干货分享,确定不来看看? …

Codeforces Round #837 (Div. 2) Hossam and Friends

原题链接:https://codeforces.com/contest/1771/problem/B 题意 :你总共有n个朋友编号1~n,其中m对互不认识,求1~n区间中没有互不认识的子段的总个数。 思路:总字段个数为每个编号前面的编号个数(包括自己…

RK3568平台开发系列讲解(安卓适配篇)Android11 预安装应用功能

🚀返回专栏总目录 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Android11 上的应用预安装功能,主要是指配置产品时,需要将提前准备好的第三方应用 apk 放进 android 系统。在实际的研发过程…

【NumPy 数组连接、拆分、搜索、排序】

🤵‍♂️ 个人主页老虎也淘气 个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏…

[附源码]Python计算机毕业设计宠物领养系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等…

数学基础从高一开始5、充分必要条件

数学基础从高一开始5、充分必要条件 目录 数学基础从高一开始5、充分必要条件 概念复习 命题 真命题与假命题 命题的形式 概念定义 例1: 例2 练习 总结 概念复习 命题 命题:把用语言、符号或式子表达的,可以判断真假的陈述句称为命题。 真命题…

杨校老师课堂之MySQL数据库面试题【开发工程师面试前必看】

1.说一说三大范式 「第一范式」:数据库中的字段具有「原子性」,不可再分,并且是单一职责 「第二范式」:「建立在第一范式的基础上」,第二范式要求数据库表中的每个实例或行必须「可以被惟一地区分」。为实现区分通常需…