C# 命名空间、预处理器指令、正则、文件

2019-09-30  本文已影响0人  李霖弢

命名空间 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 System;
Console.WriteLine("Hello, World!");
//而不需要使用
System.Console.WriteLine("Hello, World!");

但需注意,如多个命名空间有同名类,使用时依然需要加名称。

嵌套命名空间

同样可以使用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);
上一篇下一篇

猜你喜欢

热点阅读