跳转至

命名空间与引用#

随着代码增多、类越来越多,把所有代码写在一个命名空间下会导致文件结构复杂化。命名空间用于分类组织代码,避免命名冲突。

基本语法#

// 声明命名空间
namespace 命名空间名称
{
    class MyClass { }
}

using 指令#

using 指令用于引用其他命名空间,引入后可以直接使用其中的类型,无需写全限定名:

// 引入命名空间后,可以直接使用其中的类
using 索引器演示;   // 引用自定义命名空间
using System;       // 引用系统命名空间

namespace 命名空间
{
    internal class Program
    {
        static void Main(string[] args)
        {
            BBB a = new BBB();           // 直接使用,无需写 索引器演示.BBB
            a.Add(new AAA() { Age = 1, Name = "hsdfjakfjal" });
            Console.WriteLine(a[0].Name);
        }
    }
}

引用静态类#

using static 指令可以引入静态类,引入后可以直接调用其静态成员,无需通过 类名.成员 的形式访问:

// 引入静态类后,其中的静态方法可以直接调用
using static System.Console;   // 引入 Console 类
using static 引用静态类.Test;  // 引入自定义静态类

namespace 引用静态类
{
    internal class Program
    {
        static void Main(string[] args)
        {
            WriteLine(123);  // 直接调用,无需 Console.WriteLine()
            Fn();            // 直接调用,无需 Test.Fn()
        }
    }

    public static class Test
    {
        public static void Fn()
        {
            Console.WriteLine("静态类启动!");
        }
    }
}

类库引用#

在项目中引用另一个项目的类库(如 me 命名空间下的 Rate 工具类):

// 在项目中添加对 me 项目的引用后
using me;

namespace 类库测试
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 直接调用 me 命名空间中的静态方法
            Console.WriteLine(Rate.StrIndex("asad", "a"));
        }
    }
}

关键要点#

概念 说明
using 命名空间 引用命名空间,使用其中的所有公开类型
using static 类名 引用静态类,直接调用其静态成员
项目间引用 需要先在项目中添加引用(Add Reference),才能 using 其他项目的命名空间
命名冲突 两个命名空间有同名类时,需使用全限定名 命名空间.类名 区分

相关笔记#