举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > c#命名空间规范 C# 命名空间

c#命名空间规范 C# 命名空间

2023-02-28 04:18 C#教程

c#命名空间规范 C# 命名空间

c#命名空间规范

C#命名空间规范是一种用于组织C#代码的有效方式,它可以帮助我们更好地理解和使用代码。它也可以帮助我们避免命名冲突,并且可以更好地处理多个应用程序之间的依赖关系。

C#命名空间的标准格式是:[CompanyName].[ProductName].[ModuleName]。其中CompanyName是公司的名字,ProductName是产品的名字,ModuleName是模块的名字。

例如:Microsoft.Office.Word表示Microsoft公司的Office产品中Word模块。

在使用C#命名空间时,需要注意一些重要的原则:

1. 命名应该尽量保持一致性。 
2. 命名应该尽量保持有意义性。 
3. 命名应该尽量保持易读性。 
4. 命名应该尽量避免冲突。 
5. 命名应该尽量避免过长或过短。 
6. 命名应该尊重版权法律法规。

C# 命名空间

C#命名空间

命名空间是一个域,这在个域中所有的类型名字必须是唯一的,不同的类型分组归入到层次化的命名空间,

命名空间的好处是:

  1. 避免名字冲突。
  2. 便于查找类型名字。

如:​System.secruity.Cryptogtaphy

下面介绍namespace 关键字的使用。

namespace test
{
  class class0
  {
    int i;
    public class0()
    {
    }
  }
}

例如:

namespace Outer.Middle.Inner { 
    class Class1 {} 
    class Class2 {} 
} 

命名空间中的点表示嵌套命名空间的层次结构。

下面的代码在语义上与前面的示例相同:

namespace Outer { 
    namespace Middle {
        namespace Inner { 
            class Class1 {} 
            class Class2 {} 
        } 
    } 
} 

我们可以引用一个具有完全限定名的类型。

例如,我们可以参考前面示例中的 Class1 作为 Outer.Middle.Inner.Class1。

在任何命名空间中未定义的类型都在全局命名空间中。


using指令

using 指令导入一个命名空间,允许您引用没有完全限定名称的类型。

以下导入上一个示例的 Outer.Middle.Inner 命名空间:


using Outer.Middle.Inner; 

class Test { 
    static void Main() { 
        Class1 c; // Don"t need fully qualified name
    } 
} 

名称作用域

在外部命名空间中声明的名称可以在内部命名空间内使用不合格。

在此示例中,名称 Middle 和 Class1 被隐式导入 Inner:


namespace Outer { 
    namespace Middle {
        class Class1 {}
        namespace Inner { 
            class Class2 : Class1 {} 
        } 
    } 
} 

要引用命名空间层次结构的不同分支中的类型,请使用部分限定名称。

在下面的示例中,我们基于 Common.MyBase MyClass


namespace Outer { 
    namespace Common {
        class MyBase {} 
    } 
    namespace MyNamespace {
        class MyClass : Common.MyBase {} 
    } 
} 

名称隐藏

如果同一类型名称出现在内部和外部命名空间中,则内部名称将胜出。

要引用外部命名空间中的类型,必须限定其名称。

例如:


namespace Outer { 
    class myMethod { } 
    namespace Inner { 
        class myMethod { } 
        class Test { 
            myMethod f1; // = Outer.Inner.myMethod 
            Outer.myMethod f2; // = Outer.myMethod 
        } 
    } 
} 

重复命名空间

您可以重复命名空间声明,只要命名空间中的类型名称不冲突:


namespace Outer.Middle.Inner {
     class Class1 {} 
} 
namespace Outer.Middle.Inner { 
    class Class2 {} 
} 

嵌套使用指令

我们可以在命名空间中嵌套一个 using 指令。

在以下示例中,Class1 在一个作用域中可见,但在另一个作用域中不可见:


namespace Outer { 
    class Class1 {} 
} 
namespace N2 { 
    using Outer;
    class Class2 : Class1 {} 
} 
namespace N2 { 
    class Class3 : Class1 {} // Compile-time error 
} 

别名类型和命名空间

导入命名空间可能导致类型名冲突。

我们可以只导入你需要的特定类型,给每个类型一个别名。

例如:


using PropertyInfo2 = System.Reflection.PropertyInfo; 
class Program { PropertyInfo2 p; } 

整个命名空间可以进行别名,如下所示:


using R = System.Reflection; 

class Program { 
   R.PropertyInfo p; 
} 


阅读全文
以上是编程学为你收集整理的c#命名空间规范 C# 命名空间全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  • c#构造函数的作用 C# 构造函数

    c#构造函数的作用 C# 构造函数

    2023-02-26 C#教程

    C#构造函数实例构造函数构造函数在类或结构体上运行初始化代码。构造函数被定义为一个方法。构造函数具有与类型相同的名称,并...

  • c#语法大全 C# 语法

    c#语法大全 C# 语法

    2023-02-24 C#教程

    C#语法C#语法的灵感来自C和C ++语法。它与Java也有类似的语法。在本节中,我们将使用以下程序来描述C#的语法元素:using Syste...

  • c#输出excel文件 C# 文件的输入与输出

    c#输出excel文件 C# 文件的输入与输出

    2023-02-24 C#教程

    C# 文件的输入与输出一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合。当打开文件进行读写时,它变成一个 流。 ...

  • 预定义特性 C# 特性(Attribute)

    预定义特性 C# 特性(Attribute)

    2023-02-25 C#教程

    C# 特性(Attribute)特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声...

  • c#环境搭建 C# 环境

    c#环境搭建 C# 环境

    2023-02-24 C#教程

    在这一章中,我们将讨论创建 C# 编程所需的工具。我们已经提到 C# 是 .Net 框架的一部分,且用于编写 .Net 应用程序。因此,在讨...

© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部