亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C# 命名空间完全指南:避免命名冲突、using 指令与嵌套命名空间

命名空间旨在将一组名称与另一组名称分离。一个命名空间中声明的类名不会与另一命名空间中相同的类名冲突。

定义命名空间

namespace namespace_name {
    // 代码声明
}

调用命名空间成员:namespace_name.item_name

基本示例

using System;
namespace first_space {
    class namespace_cl {
        public void func() { Console.WriteLine("Inside first_space"); }
    }
}
namespace second_space {
    class namespace_cl {
        public void func() { Console.WriteLine("Inside second_space"); }
    }
}

class TestClass {
    static void Main(string[] args) {
        first_space.namespace_cl fc = new first_space.namespace_cl();
        second_space.namespace_cl sc = new second_space.namespace_cl();
        fc.func();  // Inside first_space
        sc.func();  // Inside second_space
        Console.ReadKey();
    }
}

using 关键字

using 指令声明程序使用指定命名空间中的名称。例如使用 System 命名空间中的 Console 类:

Console.WriteLine("Hello there");  // 简写
System.Console.WriteLine("Hello there");  // 完全限定名

using 指令简化代码

using System;
using first_space;
using second_space;

namespace first_space {
    class abc { public void func() { Console.WriteLine("Inside first_space"); } }
}
namespace second_space {
    class efg { public void func() { Console.WriteLine("Inside second_space"); } }
}

class TestClass {
    static void Main(string[] args) {
        abc fc = new abc();
        efg sc = new efg();
        fc.func();
        sc.func();
        Console.ReadKey();
    }
}

嵌套命名空间

可在命名空间内定义另一命名空间:

namespace namespace_name1 {
    namespace namespace_name2 { /* 代码 */ }
}

通过点号访问嵌套成员:namespace_name1.namespace_name2.item

嵌套示例

using System;
using first_space;
using first_space.second_space;

namespace first_space {
    class abc { public void func() { Console.WriteLine("Inside first_space"); } }
    namespace second_space {
        class efg { public void func() { Console.WriteLine("Inside second_space"); } }
    }
}

class TestClass {
    static void Main(string[] args) {
        abc fc = new abc();
        efg sc = new efg();
        fc.func();  // Inside first_space
        sc.func();  // Inside second_space
        Console.ReadKey();
    }
}

using 别名指令

为命名空间或类型起别名,解决名称冲突:

using ProjectA = MyCompany.ProjectA;
using ProjectB = MyCompany.ProjectB;
using StringList = System.Collections.Generic.List;

全局 using (C# 10+ / .NET 6+)

在 GlobalUsings.cs 或项目文件中定义全局 using,整个项目自动引用:

global using System;
global using System.Linq;
global using System.Collections.Generic;

命名空间设计最佳实践

C语言

  1. C# Hello World — 构建你的第一个C#应用程序
  2. C#关键字与标识符:规则、完整列表与最佳实践
  3. 精通C#变量与基础数据类型:完整指南
  4. C#运算符——C#运算符全面指南
  5. 掌握 C# 位运算与移位运算符:全面指南
  6. C# 基础:输入输出核心技巧完全指南
  7. C# 表达式、语句与代码块:全面指南与实战示例
  8. 掌握 C# 注释:类型、最佳实践与 XML 文档注释
  9. 掌握 C# switch 语句:语法、示例与最佳实践
  10. C# 三元运算符:条件表达式简明指南
  11. C# break 语句:用法、时机与实战示例
  12. 掌握 C# continue 语句:高效跳过循环迭代的实战指南