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其实还可以抽象很多其他数据类型,然后在这一抽象的基础上做一些非常规操作.这些另类操作用好了,有时可以极大简化你的代码 ...
最新文章
- 教你搭建多变量时间序列预测模型LSTM(附代码、数据集)
- Visual C# 编程操作Excel
- 2021牛客OI赛前集训营-提高组(第五场)D-牛牛的border【SAM】
- linux和windows启动,Linux和Windows双系统的启动
- Spark和机器学习整合
- 从网络访问计算机不能添加用户名,windows7 和 XP 能互相用\\ip访问,但是不能通过计算机名访问...
- helm安装_如何利用 Helm 在 Kubernetes 上快速部署 Jenkins
- 类型的设计--类型和成员基础(二)
- 使用SQLite数据库存储数据(2)-向表中插入记录
- “非IE内核浏览器”第一阶段开发计划发布
- 图像处理六:预处理方法
- 车牌的归属地(省份和地级市) js
- 计算机网络自顶向下方法 第六章 复习题答案
- 联想如何打开计算机配置,联想电脑如何进入BIOS以及设置启动菜单
- 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本)
- 为什么面试要问hashmap 的原理
- js三座大山——原型及原型链
- oracle表如何做统计分析,Oracle表统计信息的分析
- 了解你的windows目录和系统文件(转)
- 加拿大自动垃圾分类助手走进校园【智能行业快讯 2019.7.26】