对于使用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简化静态成员的使用相关推荐

  1. C++static类静态成员函数及变量解析

    类静态成员作用,无论创建多少个实例,类静态成员只有一个副本,即不会被销毁,除非程序运行结束. 类静态成员只能单独定义,无法在构造函数中定义类静态成员 类静态成员访问的话 只能通过类静态函数访问 类静态 ...

  2. C++ static静态成员函数详解

    在类中,static 除了可以声明静态成员变量,还可以声明静态成员函数.普通成员函数可以访问所有成员(包括成员变量和成员函数),静态成员函数只能访问静态成员. 编译器在编译一个普通成员函数时,会隐式地 ...

  3. 静态成员变量和静态成员函数(static)

    数据成员可以分静态变量.非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配 ...

  4. C++ static静态成员函数

    在类中,static 除了可以声明静态成员变量,还可以声明静态成员函数.普通成员函数可以访问所有成员(包括成员变量和成员函数),静态成员函数只能访问静态成员. 编译器在编译一个普通成员函数时,会隐式地 ...

  5. oc 协议 回调 静态成员_OC中特性、静态成员(static)以及协议的基本知识

    特性:@property  @synthesize @property是一种新的编译器功能,表示声明了一个新对象的属性:存在于接口部分(interface). 例如:@property NSStrin ...

  6. 静态数据成员和静态成员函数(static)

    目录 一.关于静态成员 二.静态数据成员和普通数据成员的共同点 三.为什么要使用静态数据成员 四.关于静态数据成员的初始化 五. 静态成员的访问方式 六.静态成员函数 1.与静态数据成员不同,静态成员 ...

  7. Java:封装的概念,UML类图,构造方法,this关键字,static关键字,方法重载,包package

                     oop三大特性:封装,继承,多态 oop一般指面向对象程序设计(一种计算机编程架构) 一.封装的概念:    将东西包在一起,然后以新的完整形式呈现出来       ...

  8. 【C++】C/C++ 中 static 的用法全局变量与局部变量

    C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...

  9. [转] Java中public,private,final,static等概念的解读

    作为刚入门Java的小白,对于public,private,final,static等概念总是搞不清楚,到底都代表着什么,这里做一个简单的梳理,和大家分享,若有错误请指正,谢谢~ 访问权限修饰符 pu ...

最新文章

  1. 所有 SAP 现在开设的标准课程
  2. 干货!仅有 100k 参数的高效显著性检测方法
  3. POJ 2231 Moo Volume(递推、前缀和)
  4. 3根机械手指打《超级马里奥》登上Science子刊
  5. php简单网站源码包含数组_PHP 数组
  6. 单元格变色和图片透明
  7. hammer用法 jquery.hammer.js
  8. 如何衡量两个词的相关度
  9. 热血致敬!曾影响几代科学巨匠的传奇经典,至今仍无人能超越!
  10. Ajax异步与JavaScript的一些初浅认识
  11. java新入手的三十个基本概念
  12. 二分图的匹配(未完)
  13. 20200221_2_国家非文化遗产爬虫代码
  14. L1-004 计算摄氏温度 (5 分)—团体程序设计天梯赛
  15. 【转载】Matlab画图命令介绍
  16. 毕业论文(设计)开题报告
  17. aws lambda_借助AWS Elastic Beanstalk轻松进行Spring Boot部署
  18. FSCapture 录制视频没有声音的解决方法
  19. 谷歌翻译用不了,失效的最新解决方法之一
  20. ETL工具简单操作文档

热门文章

  1. EA常见画图(类图、包图、构件图、状态图、顺序图、活动图)
  2. 讨论:响一声就挂吸费电话频遭投诉 回拨话费被扣数百
  3. 免费的crm系统部署在自己的服务器,CRM软件的三种部署方式
  4. C#用Aforge.net类库调用摄像头实现监控或者拍照功能
  5. sqli-labs-waf
  6. java首字母大写工具类_StringUtil 字符串工具类 将一个字符串的首字母改为大写或者小写 将一 联合开发网 - pudn.com...
  7. 自制app(游戏)Please Go之上传头像篇----萌新成长之路
  8. Cesium 风向图
  9. Navicat Preium 中文版破解
  10. 松下PLC FP-XH C30T 和昆仑通态触摸屏 TPC7022Ex 程序下载步骤