我有点陷入困境,经过一番搜索后,我转向你:
class StatusResponse
{
protected int _statusCode { get; set; }
protected string _statusMessage { get; set; }
public StatusResponse(string Response)
{
if (!String.IsNullOrEmpty(Response))
{
this._statusCode = int.Parse((Response.Split(' '))[0].Trim());
this._statusMessage = Response;
}
}
}
class GroupStatusResponse : StatusResponse
{
public int Count { get; private set; }
public int FirstArticle { get; private set; }
public int LastArticle { get; private set; }
public string Newsgroup { get; private set; }
public GroupStatusResponse(string Response) : base(Response)
{
string[] splitResponse = Response.Split(' ');
this.Count = int.Parse(splitResponse[1].Trim());
this.FirstArticle = int.Parse(splitResponse[2].Trim());
this.LastArticle = int.Parse(splitResponse[3].Trim());
this.Newsgroup = splitResponse[4].Trim();
}
为什么我不能这样做:
GroupStatusResponse resp = new GroupStatusResponse("211 1234 3000234 3002322 misc.test");
Console.Writeline(resp._statusCode);
答案 0 :(得分:2)
使用
Console.Writeline(resp._statusCode);
从派生类外部是公共的,而不是受保护的使用。
但是,您可以添加以下内容:
class GroupStatusResponse : StatusResponse
{
public int GetStatusCode()
{
return _statusCode;
}
}
完全有效使用。
此外,如果情况是任何人都应允许_statusCode读取,但只有基类应该能够设置它,您可以将其定义更改为:
public string _statusMessage { get; private set; }
答案 1 :(得分:0)
这是因为_statusCode是protected
。这意味着该课程在课堂外无法进入。