本文主要讲
- C# 常见命名空间
- using static 指令 && 调用静态方法
- 嵌套命名空间&&作用域
- 别名
- Main() 方法
C# 常见命名空间
命名空间 | 作用 |
System | 创建文件是默认引入,处理数学计算、、环境变量、输出控制台、垃圾回收器及一些常见的异常和特征。 |
System.Collections | 同:都是处理对象集合(列表和字典等) 异:后者是使用泛型的强类型集合 |
System.Collections.Generic | |
System.Data | 用于数据库处理 例如 ADO.NET System.Data.Odbc System.Data.Oracle Client System.Data.OleDb System.Data.SqlClient |
System.IO | 处理文件输入/输出(I/O) 数据压缩 端口操作 |
System.IO.Comoression |
|
System.IO.Ports |
|
System.Drawing | 用于绘图、进行图像处理 |
System.Windows.Froms | 包含构建用户界面和各类控件的类型 |
System.Windows | WPF UI工具包 |
System.Windows.Controlls | |
System.Windows.Shapes | |
System.Linq | 提供LINQ 功能(语言集成查询)
|
System.Web | 构建.NET Web应用程序,用于支持ASP.NET |
System.ServiceModel | 通过WCF API构建分布式应用程序 |
System.Workflow.Runtime | 使用WCF API构建支持工作流的应用程序的类型 |
System.Workflow.Activities | |
System.Threading | 用来构建多线程应用程序的类型 |
System.Threading.Tasks | 基于任务的异步操作 |
System.Security | 以安全为中心的命名空间,有很多用来处理权限、加密等问题的类型 |
System.Xml | 用于XML数据交互的类型 |
注:在C#中,引入一个命名空间时,是不能使用该命名空间的子空间。
例如,引入了System.Collections,但是不能使用System.Collections.Generic 内的类和方法。
其它更多不同功能的、不同分类的命名空间,推荐查看文章
https://blog.csdn.net/lidandan2016/article/details/77994232?locationNum=8&fps=1
using static 指令 && 调用静态方法
在C#中在不同命名空间的类,需要先引入该命名空间,然后new(实例化)后,才能使用。对于静态类来说,在引入命名空间后,即可直接使用。
1 using System; 2 using System.IO; 3 4 public class Test 5 { 6 static void Main() 7 { 8 int num = Add(5, 6); 9 Console.WriteLine(num); 10 Console.ReadKey(); 11 } 12 public static int Add(int x, int y) 13 { 14 return x + y; 15 } 16 }
例如控制台用于输出字符串的方法 Console.WriteLine() ,引入 System 后,即可直接使用。在上述代码的第 9 行。
样式 类.方法(); Console.WriteLine()
对于跟 Main 在同一个文件中的方法,必定是静态方法, 直接调用该方法名。在上述代码的第8行。
样式 方法(); 如 Add();
如果不在同一命名空间的静态方法,我想直接使用 方法(); 而不是 类.方法(); 这种形式呢?
这就需要使用 using static 指令。
using static 指令指定一种类型,无需指定类型名称即可访问其 静态成员和嵌套类型。
如
1 |
|
修改上面的示例代码,留意第9、10行
1 using System; 2 using System.IO; 3 using static System.Console; 4 public class Test 5 { 6 static void Main() 7 { 8 int num = Add(5, 6); 9 WriteLine(num); 10 ReadKey(); 11 } 12 public static int Add(int x, int y) 13 { 14 return x + y; 15 } 16 }
可以直接使用 WriteLine() 了。
注:
- 这种方式虽然可以简化长度,但是,也会容易出现很多问题,例如名称冲突、可读性降低。
- using static 只针对静态类型有效!
嵌套命名空间&&作用域
命名空间也有作用域,离开作用域的类型将无法使用。但命名空间的引入,不像变量的声明那么“任性”。
命名空间的引入是使用using指令,using指令可以在命名空间外、命名空间内的顶部并且在类的外面使用。
在命名空间外使用的using指令作用域是 该文件下的所有命名空间。
在命名空间内使用的using指令作用域是 该命名空间内。
下面是一个例子。
1 using System; 2 namespace a 3 { 4 using System.IO; 5 public class Test 6 { 7 8 static void Main() 9 { 10 Console.WriteLine("命名空间a"); 11 FileInfo file = new FileInfo("文件地址"); 12 } 13 } 14 } 15 namespace b 16 { 17 public class Test 18 { 19 static void Main() 20 { 21 Console.WriteLine("命名空间b"); 22 FileInfo file = new FileInfo("文件地址"); //报错 23 } 24 } 25 }
第一行 using System; 命名空间 a、b 都能使用,然而 只在命名空间中 a 中 using System.IO; (在第四行) ,命名空间 b 是不能使用的。
注:
很少会这样写代码,因为根据约定,每个文件只应该有一个类型声明、在头部引入命名空间。
别名
C# 中,可以使用using指令为命名空间或类型取一个别名,别名将在文件全范围起替代作用。
最常见用途为消除两个同名类型的歧义和缩写名称。
使用方法
1 |
|
例(第二行):
1 using System; 2 using Test1 = System.Console; 3 namespace core 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 Test1.WriteLine("测试"); 10 } 11 } 12 }
Main 方法
Main 方法是程序入口,一般有以下四中写法:
- 没有参数 返回值为 void
1 |
|
- 没有参数 返回值为 int
1 |
|
- 带有参数 返回值为 void
1 |
|
- 带有参数 返回值为 int
1 |
|
写法的考虑是在执行程序是提供命令行参数,并在Main方法中返回状态标识符。
使用visual studio 软件开发C#,一般用不到,使用控制台应用手动编译 源代码时,提供的参数会传入Mian方法中。
C#程序中可以出现多个 Main() 方法,但必须在运行时,确定或指定入口 Main 。