[英]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 成員可以具有五種聲明的可訪問性中的任何一種,並且默認為私有聲明的可訪問性。
因此, wrongUserName
在Appstrings
class 中具有private
可訪問性。 您必須明確指定成員對internal
、 protected
或public
的可訪問性(不推薦)。
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.