using static简化静态成员的使用
对于使用static修饰的静态类,我们可以通过类.来访问此静态类中的成员,在C#6新增特性中,我们可以使用using static这种新语法来简化对于静态类中数据的使用。
通常情况下,我们使用静态类Console的静态方法WriteLine输出如下代码。
using System;
namespace lianxi
{public class Program{static void Main(string[] args){Console.WriteLine("9999");}}
}
可以使用using static来简略此方法的使用。此方法使用后便可以在当前这个作用域内,直接来使用静态类Console的所有静态成员了,而不必加Console.。
using static System.Console; //使用using static
namespace lianxi
{public class Program{static void Main(string[] args){WriteLine("8888");}}
}
using static也可以使用在非静态类型上(如class、struct、enum)
对与非静态的class和struct,只能使用它们的静态成员。对应的静态成员包括:静态方法、静态字段、静态属性、静态事件
using static System.ConsoleColor; //枚举
using static lianxi.A; //非静态class
using static lianxi.B; //非静态structnamespace lianxi
{class A{public static void foo() { Console.WriteLine("A"); }}struct B{public static void func() { Console.WriteLine("B"); }}public class Program{static void Main(string[] args){foo(); //直接使用func(); //直接使用Console.WriteLine((int)DarkGreen);Console.WriteLine(DarkGreen);}}
}
其他类静态同名成员与本类静态同名成员的优先级
俩者签名相同时,现有静态成员优先级更高,
using static System.Console; namespace lianxi
{public class Program{public static void WriteLine(string s){System.Console.WriteLine("静态成员优先级更高!");}static void Main(string[] args){WriteLine("111"); //打印静态成员优先级更高!}}
}
俩个其他类中静态成员同名会产生二义性
当俩个其他类中有同名的成员时,使用using static将俩者包含,则在调用的时候会产生二义性。
using static System.Console;
using static lianxi.A;namespace lianxi
{public class A{public static void WriteLine(string s){System.Console.WriteLine("AAA");}}public class Program{//public static void WriteLine(string s)//{// System.Console.WriteLine("静态成员优先级更高!");//}static void Main(string[] args){WriteLine("111"); //这里会出错,产生二义性,系统不知道要调用A中的方法还是Console中的方法}}
}
using static简化静态成员的使用相关推荐
- C++static类静态成员函数及变量解析
类静态成员作用,无论创建多少个实例,类静态成员只有一个副本,即不会被销毁,除非程序运行结束. 类静态成员只能单独定义,无法在构造函数中定义类静态成员 类静态成员访问的话 只能通过类静态函数访问 类静态 ...
- C++ static静态成员函数详解
在类中,static 除了可以声明静态成员变量,还可以声明静态成员函数.普通成员函数可以访问所有成员(包括成员变量和成员函数),静态成员函数只能访问静态成员. 编译器在编译一个普通成员函数时,会隐式地 ...
- 静态成员变量和静态成员函数(static)
数据成员可以分静态变量.非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配 ...
- C++ static静态成员函数
在类中,static 除了可以声明静态成员变量,还可以声明静态成员函数.普通成员函数可以访问所有成员(包括成员变量和成员函数),静态成员函数只能访问静态成员. 编译器在编译一个普通成员函数时,会隐式地 ...
- oc 协议 回调 静态成员_OC中特性、静态成员(static)以及协议的基本知识
特性:@property @synthesize @property是一种新的编译器功能,表示声明了一个新对象的属性:存在于接口部分(interface). 例如:@property NSStrin ...
- 静态数据成员和静态成员函数(static)
目录 一.关于静态成员 二.静态数据成员和普通数据成员的共同点 三.为什么要使用静态数据成员 四.关于静态数据成员的初始化 五. 静态成员的访问方式 六.静态成员函数 1.与静态数据成员不同,静态成员 ...
- Java:封装的概念,UML类图,构造方法,this关键字,static关键字,方法重载,包package
oop三大特性:封装,继承,多态 oop一般指面向对象程序设计(一种计算机编程架构) 一.封装的概念: 将东西包在一起,然后以新的完整形式呈现出来 ...
- 【C++】C/C++ 中 static 的用法全局变量与局部变量
C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...
- [转] Java中public,private,final,static等概念的解读
作为刚入门Java的小白,对于public,private,final,static等概念总是搞不清楚,到底都代表着什么,这里做一个简单的梳理,和大家分享,若有错误请指正,谢谢~ 访问权限修饰符 pu ...
最新文章
- 所有 SAP 现在开设的标准课程
- 干货!仅有 100k 参数的高效显著性检测方法
- POJ 2231 Moo Volume(递推、前缀和)
- 3根机械手指打《超级马里奥》登上Science子刊
- php简单网站源码包含数组_PHP 数组
- 单元格变色和图片透明
- hammer用法 jquery.hammer.js
- 如何衡量两个词的相关度
- 热血致敬!曾影响几代科学巨匠的传奇经典,至今仍无人能超越!
- Ajax异步与JavaScript的一些初浅认识
- java新入手的三十个基本概念
- 二分图的匹配(未完)
- 20200221_2_国家非文化遗产爬虫代码
- L1-004 计算摄氏温度 (5 分)—团体程序设计天梯赛
- 【转载】Matlab画图命令介绍
- 毕业论文(设计)开题报告
- aws lambda_借助AWS Elastic Beanstalk轻松进行Spring Boot部署
- FSCapture 录制视频没有声音的解决方法
- 谷歌翻译用不了,失效的最新解决方法之一
- ETL工具简单操作文档
热门文章
- EA常见画图(类图、包图、构件图、状态图、顺序图、活动图)
- 讨论:响一声就挂吸费电话频遭投诉 回拨话费被扣数百
- 免费的crm系统部署在自己的服务器,CRM软件的三种部署方式
- C#用Aforge.net类库调用摄像头实现监控或者拍照功能
- sqli-labs-waf
- java首字母大写工具类_StringUtil 字符串工具类
将一个字符串的首字母改为大写或者小写
将一 联合开发网 - pudn.com...
- 自制app(游戏)Please Go之上传头像篇----萌新成长之路
- Cesium 风向图
- Navicat Preium 中文版破解
- 松下PLC FP-XH C30T 和昆仑通态触摸屏 TPC7022Ex 程序下载步骤