本文主要讲
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 内的类和方法.
其它更多不同功能的, 不同分类的命名空间, 推荐查看文章
using static 指令 && 调用静态方法
在 C# 中在不同命名空间的类, 需要先引入该命名空间, 然后 new(实例化) 后, 才能使用. 对于静态类来说, 在引入命名空间后, 即可直接使用.
- using System;
- using System.IO;
- public class Test
- {
- static void Main()
- {
- int num = Add(5, 6);
- Console.WriteLine(num);
- Console.ReadKey();
- }
- public static int Add(int x, int y)
- {
- return x + y;
- }
- }
例如控制台用于输出字符串的方法 Console.WriteLine(), 引入 System 后, 即可直接使用. 在上述代码的第 9 行.
样式 类. 方法 (); Console.WriteLine()
对于跟 Main 在同一个文件中的方法, 必定是静态方法, 直接调用该方法名. 在上述代码的第 8 行.
样式 方法 (); 如 Add();
如果不在同一命名空间的静态方法, 我想直接使用方法 (); 而不是 类. 方法 (); 这种形式呢?
这就需要使用 using static 指令.
using static 指令指定一种类型, 无需指定类型名称即可访问其 静态成员和嵌套类型.
如
using static System.Console;
修改上面的示例代码, 留意第 9,10 行
- using System;
- using System.IO;
- using static System.Console;
- public class Test
- {
- static void Main()
- {
- int num = Add(5, 6);
- WriteLine(num);
- ReadKey();
- }
- public static int Add(int x, int y)
- {
- return x + y;
- }
- }
可以直接使用 WriteLine() 了.
注:
这种方式虽然可以简化长度, 但是, 也会容易出现很多问题, 例如名称冲突, 可读性降低.
using static 只针对静态类型有效!
嵌套命名空间 && 作用域
命名空间也有作用域, 离开作用域的类型将无法使用. 但命名空间的引入, 不像变量的声明那么 "任性".
命名空间的引入是使用 using 指令, using 指令可以在命名空间外, 命名空间内的顶部并且在类的外面使用.
在命名空间外使用的 using 指令作用域是 该文件下的所有命名空间.
在命名空间内使用的 using 指令作用域是 该命名空间内.
下面是一个例子.
- using System;
- namespace a
- {
- using System.IO;
- public class Test
- {
- static void Main()
- {
- Console.WriteLine("命名空间 a");
- FileInfo file = new FileInfo("文件地址");
- }
- }
- }
- namespace b
- {
- public class Test
- {
- static void Main()
- {
- Console.WriteLine("命名空间 b");
- FileInfo file = new FileInfo("文件地址"); // 报错
- }
- }
- }
第一行 using System; 命名空间 a,b 都能使用, 然而 只在命名空间中 a 中 using System.IO; (在第四行) , 命名空间 b 是不能使用的.
注:
很少会这样写代码, 因为根据约定, 每个文件只应该有一个类型声明, 在头部引入命名空间.
别名
C# 中, 可以使用 using 指令为命名空间或类型取一个别名, 别名将在文件全范围起替代作用.
最常见用途为消除两个同名类型的歧义和缩写名称.
使用方法
using 别名 = 命名空间或类型;
例 (第二行):
- using System;
- using Test1 = System.Console;
- namespace core
- {
- class Program
- {
- static void Main(string[] args)
- {
- Test1.WriteLine("测试");
- }
- }
- }
Main 方法
Main 方法是程序入口, 一般有以下四中写法:
没有参数 返回值为 void
static void Main()
没有参数 返回值为 int
static int Main()
带有参数 返回值为 void
static void Main(string[] args)
带有参数 返回值为 int
static int Main(string[] args)
写法的考虑是在执行程序是提供命令行参数, 并在 Main 方法中返回状态标识符.
使用 visual studio 软件开发 C#, 一般用不到, 使用控制台应用手动编译 源代码时, 提供的参数会传入 Mian 方法中.
C# 程序中可以出现多个 Main() 方法, 但必须在运行时, 确定或指定入口 Main .
来源: https://www.cnblogs.com/whuanle/p/9965127.html