簡體   English   中英

類可以使用基類中名稱空間的屬性嗎

[英]class can i use the properties of the name space from base class

有一個簡單的問題,看起來很簡單,但我一直在搜索無法找回的原因。

  1. 如果我在基類中導入了名稱空間,那么我可以在所有派生類中使用名稱空間的屬性(類,對象,方法等)嗎?

例如

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM