![](/img/trans.png)
[英]How can I use a common initializer for init properties in a base class?
[英]class can i use the properties of the name space from base class
有一個簡單的問題,看起來很簡單,但我一直在搜索無法找回的原因。
例如
using System.Collections.Generic;
public class MyBase
{
public string GetName()
{
List<string> ss = new List<string>();
return ss.ToString();
}
}
我可以在沒有基礎名稱空間的情況下,在從基礎分類的所有子級中使用List屬性嗎? 喜歡
public class myChild : MyBase
{
public string GetName()
{
List<string> ss = new List<string>();
return ss.ToString();
}
}
如果沒有,為什么? 我在局部類中也注意到了同樣的行為..有人可以解釋其背后的原因嗎?
聽起來您在問以下問題
如果在導入名稱空間的文件中定義了“父類型”,那么如果我從“父”派生,是否必須重新導入該名稱空間?
如果是這樣,答案是肯定的。 子類型不繼承在定義了父類型的文件中導入的名稱空間(部分原因是,對於partial
類型,可以在名稱空間沖突的多個文件中定義類型)。 每個文件都是根據自己的導入集進行編譯的。
using
語句不是可執行代碼,並且不適用於類或類的成員。 相反,它們為編譯器提供了有關如何解析類型名稱的信息。 using
語句僅在包含它的文件的范圍內; 此外,如果它在名稱空間聲明中,則僅在該名稱空間聲明中有效。
請注意,一個文件中可能有多個命名空間聲明,因此:
namespace N
{
using System.IO;
partial class C
{
public FileInfo SomeFileInfo { get; set; }
}
}
namespace N
{
partial class C
{
public DirectoryInfo SomeDirectoryInfo { get; set; }
}
}
由於using System.IO;
,因此無法解析對DirectoryInfo
的引用using System.IO;
當時不在范圍內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.