using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApp1
{
class A
{
}
namespace Controllers
{
class Con
{
}
namespace Api
{
class Test
{
ApiB.Test1 test1 = new ApiB.Test1(); //這里為什么可以訪問到ApiB空間???
}
}
namespace ApiB
{
class Test1
{
Models.Mo mo = new Models.Mo(); //這里為什么可以訪問到Models空間???
}
}
}
namespace Models
{
class Mo
{
}
namespace Entity
{
class Song
{
}
}
}
}
我對命名空間的理解為類似電腦上檔案目錄的概念,上面Test類在ConsoleApp1.Controllers.Api中,為什么可以訪問到ApiB(ConsoleApp1.Controllers.ApiB)?
另外一個也是同理,Test1類在ConsoleApp1.Controllers.ApiB中,為什么可以訪問到Models(ConsoleApp1.Models)中的內容
如果是寫完全限定我可以理解,類似于絕對路徑;但這種上面這種非完全限定寫法有點像相對路徑寫法,但又不像是相對路徑的感覺,推理不通,望指導,謝謝
uj5u.com熱心網友回復:
Models.Mo,帶命名空間就可以或者using Models;
那么直接Mo,省略Models,也可以
uj5u.com熱心網友回復:
我知道可以,我的意思是我明白些完全限定,這個好理解;
你說using Models;是不能這么using的
Test1類在ConsoleApp1.Controllers.ApiB中
Models(ConsoleApp1.Models)
搞不懂這個是怎么個相對關系就可以訪問到
uj5u.com熱心網友回復:
在C#中,命名空間是可以相互訪問的。當存在同一個cs類別庫檔案中,可直接通過namespace命名名字直接訪問該空間中的類。
如果在其它類中訪問,用絕對路徑訪問,比如你寫的:ConsoleApp1.Controllers.ApiB
也是可以實作的。
uj5u.com熱心網友回復:
在C#中,命名空間是可以相互訪問的。可以使用using 命名空間的名字,也可以用絕對路徑訪問。當存在同一個cs類別庫檔案中,可直接通過namespace命名名字直接訪問該空間中的類。
uj5u.com熱心網友回復:
不是的喲,在不同的cs類別庫檔案中,也可以互相訪問的,實際測驗和在不在同一個類檔案中無關,完全跟著namespace結構走的
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/64899.html
標籤:C#
