(三十四)C#编程基础复习——C#命名空间(namespace)

在C#中,可以将命名空间看做是一个范围,用来标注命名空间成员的归属,一个命名空间中类与另一个命名空间中同名的类互不冲突,但在同一个命名空间中类的名称必须是唯一的。

举个简单的例子,在一个简单的C#程序中,假如我们要输出某些数据,就需要用System.Console.WriteLine(),其中System就是命名空间,而Console是类的名字,WriteLine则是具体要使用的方法。也就是说,如果要访问某个命名空间中的类,我们需要使用namespacename.classname.funcname()的形式。当然也可以使用using关键字来引用需要的命名空间,例如using System,这样我们就可以直接使用Console.WriteLine()来输出指定的数据了。

命名空间的结构类似于我们计算机系统中的目录,我们可以将某个目录看做是一个命名空间,在这个目录下可以存在若干不同的文件夹,这些文件夹就可以看做是命名空间下的类。而在每个文件夹下又存放着一些文件或文件夹,这些文件和文件夹则可以看作是类中的成员。

使用命名空间的好处是可以避免命名冲突,同时也便于查找类的位置。

一、定义命名空间

在C#中定义命名空间需要使用namespace关键字,若要调用指定命名空间下的成员,则需要使用namespaceName.className.funcName()的形式,示例如下:

namespace _032
{
    internal class Program
    {
        static void Main(string[] args)
        {
            First.demoClass demo1 = new First.demoClass();
            Second.demoClass demo2 = new Second.demoClass();
            demo1.sayHello();
            demo2.sayHello();
            Console.ReadKey();
        }
    }
}
namespace First
{
    public class demoClass 
    {
        public void sayHello()
        {
            System.Console.WriteLine("First命名空间下demoClass类中的sayHello函数");
        }
    }
}
namespace Second
{
    public class demoClass
    {
        public void sayHello()
        {
            System.Console.WriteLine("Second命名空间下demoClass类中的sayHello函数");
        }
    }
}

运行结果:

二、using关键字

using关键字用来引用指定的命名空间,它可以告诉编译器后面的代码中我们需要用到某个命名空间。例如我们在程序中需要使用到System命名空间,只需要再程序的开始使用using System引用该命名空间即可,这是我们在使用System命名空间下的类时就可以将System.省略,例如

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using First;
using Second;


namespace _032
{
    internal class Program
    {
        static void Main(string[] args)
        {
            firstClass demo1 = new firstClass();
            secondClass demo2 = new secondClass();
            demo1.sayHello();
            demo2.sayHello();
            Console.ReadKey();
        }
    }
}
namespace First
{
    public class firstClass
    {
        public void sayHello()
        {
            System.Console.WriteLine("First命名空间下demoClass类中的sayHello函数");
        }
    }
}
namespace Second
{
    public class secondClass
    {
        public void sayHello()
        {
            System.Console.WriteLine("Second命名空间下demoClass类中的sayHello函数");
        }
    }
}

运行结果:

三、命名空间嵌套

命名空间可以嵌套使用,也就是说我们可以在一个命名空间中再定义一个或几个命名空间,可以使用点.运算符来访问嵌套的命名空间成员,例如namespaceName1.namespaceName2。示例如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using First;
using First.Second;

namespace _034
{
    internal class Program
    {
        static void Main(string[] args)
        {
            firstClass first = new firstClass();
            secondClass second = new secondClass();
            first.sayHello();
            second.sayHello();
            Console.ReadKey();
        }
    }
}
namespace First
{
    public class firstClass
    {
        public void sayHello()
        {
            System.Console.WriteLine("First命名空间下demoClass类中的sayHello函数");
        }
    }
    namespace Second
    {
        public class secondClass
        {
            public void sayHello()
            {
                System.Console.WriteLine("Second命名空间下demoClass类中的sayHello函数");
            }
        }
    }
}

运行结果:

posted @   代号六零一  阅读(233)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示