global using 的另类用法
前言
global using
指令在 C# 10 中被引入,意味着 using 将应用于编译中的所有文件(通常是一个项目)。
比如:
global using System.Text;
则在同一项目的其他位置,可以直接使用 System.Text
下的所有类型而无需再次声明 using
。
另外,可以创建using 别名
指令,以便更易于将标识符限定为命名空间或类型。
比如:
using dt = System.DateTime;
则可以直接使用 dt.Now
来代替 System.DateTime.Now
。
并且,上述 2 个指令可以结合在一起使用:
global using dt = System.DateTime;
使用别名要小心,如果别名是一个已使用的名称,则容易造成错误:
global using DateTime = System.Text.Encoding;
但是,反过来想:
如果上面的 Encoding 包含了 Now 的定义,是不是就可以替换掉现有的 DateTime.Now
实现呢?
Demo
新建一个 .cs 文件,在顶部使用 global using
设置 DateTime
为别名:
global using DateTime = ConsoleApp1.MyIODateTime;
在 MyIODateTime
中同样实现 Now
属性:
public static class MyIODateTime
{public static System.DateTime Now { get {Console.WriteLine("Call from MyIODateTime");return new System.DateTime(2022, 1, 1); } }
}
在 ConsoleApp1 中执行 Console.WriteLine(DateTime.Now);
,可以发现 DateTime.Now
确实被替换了:
结论
这个另类用法可以用于,代码中已经使用了大量某个第三方类库,但是需要进行紧急替换的场景。
如果你有关于global using
更好的想法,欢迎到我的公众号"My IO"留言讨论
global using 的另类用法相关推荐
- 写在Github被微软收购之际 - Github的那些另类用法
这几天朋友圈被微软75亿美元收购Github的新闻刷屏了.Jerry也来贡献一篇和Github相关的文章. 这篇文章包含了Jerry平时对于Github的一些另类用法.目录如下: 1. 部署HTML应 ...
- android另类工具,[置顶] android应用程序开发另解及Android SDK工具集的另类用法
转载请注明出处: LouisWang http://blog.csdn.net/louiswangbing/article/details/6606865 相信对于广大Android应用开发爱好者来说 ...
- php 类中调用另类,PHP return语句另类用法不止是在函数中,return语句_PHP教程
PHP return语句另类用法不止是在函数中,return语句 分享下PHP return语句的另一个作用,在bbPress的代码中看到的一个奇葩使用方法. 一直以为,return只能出现在函数中, ...
- 数据结构与算法--查找与排序另类用法-旋转数组中的最小数字
查找与排序 查找 查找与排序都在程序设计中常被用到的算法.查找相对而言简单,一般都是顺序查找,二分查找,哈希表查找,和二叉排序树查找.其中二分查找是我必须熟悉的一种. 哈希表和二叉排序树主要点在于他的 ...
- python中global和def_Python中 Global和Nonlocal的用法详解
nonlocal 和 global 也很容易混淆.简单记录下自己的理解. 解释 global 总之一句话,作用域是全局的,就是会修改这个变量对应地址的值. global 语句是一个声明,它适用于整个当 ...
- ati能备份linux格式吗,ATI备份TIB文件的另类用法
ATI备份TIB文件的另类用法 发布时间:2015-03-02 作者:Win10 64位官网 来源:http://www.win1064.com Acronis True Image 2013(以 ...
- docker in docker (dind)、all in one (aino),关于docker和Linux的一些另类用法
docker in docker (dind).all in one (aino),关于docker和Linux的一些另类用法.以为 docker in docker 只会在Jenkins等其他场景中 ...
- 动态参数 名称空间 作用域 作用域链 加载顺序 函数的嵌套 global nonlocal 等的用法总结...
03,动态参数 *args,**kwargs # 用户传入到函数中的实参数量不定时,或者是为了以后拓展,# 此时要用到动态参数*args,**kwargs(万能参数.)# *args接收的是所有的位置 ...
- JAVA另类_java stream的几种另类用法
除了用于简化对List, Set, Map等集合类型的操作外,java stream其实还可以抽象很多其他数据类型,然后在这一抽象的基础上做一些非常规操作.这些另类操作用好了,有时可以极大简化你的代码 ...
最新文章
- 2020年,那些「引爆」了机器学习社区的热门论文、库和基准
- 【转】POJ 1177 Picture(1)
- 给Visual Studio 2010中文版添加Windows Phone 7模板
- 学python需要什么基础知识-学习Python需要知道哪些基础入门知识?
- goland创建一个不限长度的字节切片_Go语言入门必知教程-切片
- java for 死循环_简单的java死循环 java中的死循环问题
- 《新冠肺炎防治手册》来了!阿里巴巴联合“抗疫”一线专家发布
- React开发(125):ant design学习指南之form中的hasFeedback
- A-Z排序控件的实现
- 一幅GAN网络创造的肖像图卖了40万美金,但那又怎样?
- 深度学习笔记(42) 人脸识别
- (4)verilog语言编写计数器
- 常用制图工具Visio-ProcessOn
- android GPS驱动
- LAMP架构部署论坛
- AtCoder Beginner Contest 160 A ~ E
- 99,36岁老码农现身说法
- LiLeiHanMeiMei的隐式马尔可夫爱情
- rsync+crontab实现定时备份
- 【1】数据可视化:基于 Echarts + Python 实现的动态实时大屏 - 互联网企业数据
热门文章
- Linux上传文件时文件名自动加引号问题
- MOBA电竞游戏:Zuki Moba
- PyAutocad 通过AcDbBlockReference 获得有效块名称
- 学习记录:一步一个脚印
- 一键重装系统工具哪个好?人人都会用的一键重装软件
- linux能做备份么,Linux能不能备份?
- 一款动态樱花背景HTML个人单页
- android蹒跚学步
- IP Spoof技术介绍
- python3.8.2numpy版本,如何查看安装python和numpy的版本,numpy版本的选择,命令行下查看pyth...