命名空间 namespace
提供一种让一组名称与其他名称分隔开的方式(非必须)。不同命名空间中声明相同类名不冲突。
namespace namespace_name
{
// 代码声明
}
为了调用支持命名空间版本的函数或变量,会把命名空间的名称置于前面
同一项目中不同文件内的命名空间都可以直接使用,不同项目则需要先引入项目,再引用命名空间
namespace Space1
{
public class C1
{
public int num= 10;
}
}
public class Class
{
static void Main(string[] args)
{
Space1.C1 c1 = new Space1.C1();
Console.WriteLine(c1.num);//10
Console.ReadLine();
}
}
using 关键字
- 导入命名空间
通过using
命名空间指令,这样在使用的时候就不用在前面加上命名空间名称,典型的如
using System;
Console.WriteLine("Hello, World!");
//而不需要使用
System.Console.WriteLine("Hello, World!");
但需注意,如多个命名空间有同名类,使用时依然需要加名称。
- 导入单个类
如using static System.Console;
则之后可以直接WriteLine()
而不需要Console.WriteLine()
嵌套命名空间
同样可以使用using,如
using SomeNameSpace;
using SomeNameSpace.Nested;
命名空间别名
可以为命名空间指定别名, 并通过 .
或 命名空间别名限定符 ::
可以访问已设置别名的命名空间的成员。
其中 global
是全局命名空间别名。
using generics = System.Collections.Generic;
generics::Dictionary<string, int> dict = new generics::Dictionary<string, int>()
{
["A"] = 1,
["B"] = 2,
["C"] = 3
};
generics.Dictionary<string, int> dict2 = new generics.Dictionary<string, int>()
{
["A"] = 1,
["B"] = 2,
["C"] = 3
};
global::System.Console.WriteLine("Using global alias");
预处理器指令
指导编译器在实际编译开始之前对信息进行预处理。
预处理器指令以 #
开始。且在一行上,只有空白字符可以出现在预处理器指令之前。预处理器指令不是语句,所以它们不以分号(;)结束。
和普通的控制语句(if等)功能类似,方便在于预处理器指令包含的未执行部分是不需要编译的。
正则表达式
文件输入输出
一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合。当打开文件进行读写时,它变成一个 流(通过通信路径传递的字节序列)。
文件操作集中在System.IO 命名空间内,其中 FileStream
类有助于文件的读写与关闭。
如创建一个 FileStream
对象 F 来读取名为 sample.txt 的文件:
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
网友评论