簡體   English   中英

如何訪問從公共 class C# 繼承的另一個 class 中的值?

[英]How can I access values in another class inherited from public class C#?

從公共 class 繼承時出現錯誤我無法訪問另一個 class 的值。

AppEngine.cs

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

namespace TestEngine
{
    public class AppEngine : Appstrings
    {
        public async Task<string> Testing()
        {
            return wrongUserName;
        }
    }
}

應用字符串.cs

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

namespace TestEngine
{
    public class Appstrings
    {
        string wrongUserName = "Wrong username. Please check and try again..";
    }
}

我想通過從 AppEngine class 繼承來訪問我在 Appstrings class 中定義的值。 這是我編寫的代碼,但我得到的錯誤是'Appstrings.wrongUserName' is inaccessible due to its protection level. 據說因為保護不能繼承,但是class結構是公開的。 你覺得我哪里做錯了?

基於C# 語言參考

Class 成員可以具有五種聲明的可訪問性中的任何一種,並且默認為私有聲明的可訪問性。

因此, wrongUserNameAppstrings class 中具有private可訪問性。 您必須明確指定成員對internalprotectedpublic的可訪問性(不推薦)。

namespace TestEngine
{
    public class Appstrings
    {
        protected string wrongUserName = "Wrong username. Please check and try again..";
    }
}

訪問修飾符也適用於屬性。 如果你不設置一個,它會被隱式設置為private 因此,如果您想將其設置為public ,則需要將其添加到屬性的前面,盡管如果您只想使其可由 inheritance 訪問, protected也可以:

public string wrongUsername = "...";

有關訪問修飾符的完整列表,請參閱Microsoft 文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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