C#名称空间

C#代码默认在全局名称空间中,对于包含在限定名称空间代码块中的项,全局名称空间中的其他代码可以按照名称进行引用访问它们.


使用namespace显式定义名称空间的说明:
1.在名称空间花括号的外部使用该名称空间中的名称,必须写出该名称空间中的限定名称.
2.限定名称包括它所有的分层信息,在不同的命名空间级别之间使用句点字符(.).名称是由名称空间唯一定义的,可独立使用它们,互不干扰.
3.根据约定,名称空间采用PascalCase命名方式.
4.namespace还可以定义嵌套的名称空间,通过其层次结构来引用,并使用句点区分层次结构.
5.可使用using语句简化对所包含名称空间的引用.
6.不同名称空间中的相同名称会产生冲突,可使用using语句为名称空间定义一个别名.


注意:using语句本身不能访问另一个名称空间中的名称.
使用需满足以下条件,否则不能访问其中包含的名称:
1.名称空间中的代码以某种方式链接到项目上.
2.代码是在该项目的源文件中定义的.
3.在链接到该项目的其他代码中定义的.

using语句只是便于我们访问这些名称,减少代码量,提高可读性.



//定义名称空间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lever1
{
    class A
    {
        static public string name1 = "张三";

        public string Name
        {
            get { return name1; }
        }
    }

    namespace lever2
    {
        class A
        {
            static public string name1 = "李四"; //与lever1.A.name1互不干扰

            public string Name
            {
                get { return name1; }
                set { name1 = this.Name; }
            }
        }
    }
}


以下代码测试1,2,4

class Program
{

    static void Main(string[] args)
    {
        Console.WriteLine("lever1.A.name1 显示:{0}", lever1.A.name1);

        lever1.lever2.A.name1 = "王五";
        Console.WriteLine("lever1.lever2.A.name2 显示:{0}", lever1.lever2.A.name1);//名称相同,以名称空间的层次来区分
    }
}
输出:

lever1.A.name1 显示:张三
lever1.lever2.A.name2 显示:王五


以下代码测试5,6

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

using lever1;//使用using包含名称空间,可简化调用
namespace ConsoleApplication1
{
    using LT = lever1;//由于名称空间冲突,使用using为名称空间定义一个别名.
                    //定义在此处,全局名称空间不能使用别名
    class Class1
    {
        static void Main(string[] args)
        {
            Console.WriteLine("LT.A.name1 显示:{0}", LT.A.name1);
           
            A.name1 = "王五";
            Console.WriteLine("A.name1 显示:{0}", A.name1);
        }
    }
}


输出:
LT.A.name1 显示:张三
A.name1 显示:王五




  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值