C#学习记录P5

命名空间

命名空间关键字namespaceC#学习记录P5

using System;
namespace First.two.three//每个命名中间.的点表示嵌套,跟下面相同的层次结构
{
   class Class1 { }
    class Class2 { }
}
class Class5
{ 
    //这里的class5也相当于是在全局空间中
}
namespace First  //上面这段等于下面这段
{
    namespace two
    {
        namespace three
        {
            class Class3 { }
            class Class4 { }
        }
    }
}

 using

using System;//using指令可导入一个命名空间,允许不需要类型的全名就可以使用该类型

C#学习记录P5

using static System.Console;//这里加了Console之后,下面的WriteLine就可以直接使用
class Test2
{

    static void Main()
    {
        Console.WriteLine("a");
    }
}

命名空间里的规则

命名的范围:在外层空间声明的名称可以直接在内部的命名空间直接使用,无需全名

using System;
namespace First
{
    namespace three
    {
        class Class3  { }
        //这里引用的时候就可以不用再打First Two全名,直接Two
    }
    namespace Tea
    {
        class FEEE : three.Class3 { }//分支引用时打他的命名空间和类型,用点隔开。这个叫做部分全名

    }
}

C#学习记录P5

 C#学习记录P5

 在class Foo用的是Outer.Inner.Foo,如果要用Outer里面的Foo,得用它的全名Outer.Foo

(用的时候都是默认用的内层)

重复的命名空间

可以重复声明命名空间,只要它们没有冲突的类型名即可

using System;
namespace First
{
    namespace three
    {
        class Class3  { }
        
    }
    namespace three
    {
        class Class3 { }//这样就是不允许的,只要改下类型名即可

    }
}

嵌套using指令C#学习记录P5

C#学习记录P5

 在N2里面用了using -N1,那class1也只能在N2-using N1这个命名空间里使用

到另外一个命名空间里就无法使用了

为命名空间-类型起别名

C#学习记录P5

//using PR = System.First.three.Class3; 用PR起他们的一个别名
//class Program {PR.three l;} 然后开头用PR.任何一个类都可以

命名空间的高级特性

C#学习记录P5 

 

//利用using给两个类型名字都一样的起两个别名
//例如用extern alias x1;
//extern alias x2;两行
//用的时候就
class text
{
    Static void Main()
    {
        x1.某某要引用的类型 = new x1.某某要引用的类型();
        x2.某某要引用的类型 = new x2.某某要引用的类型();
    }
}

上一篇:day30_python


下一篇:做题记录--day30