【发布时间】:2014-09-09 04:31:00
【问题描述】:
using System;
namespace Protected_Specifier
{
class access
{
// String Variable declared as protected
protected string name;
protected internal string FirstName;
public void print()
{
Console.WriteLine("\nMy name is " + name);
}
public void print1()
{
Console.WriteLine("\nMy Firstname is " + FirstName);
}
}
class Program : access // Inherit access class
{
static void Main(string[] args)
{
//Program p=new Program();
access a=new access();
Console.Write("Enter your name:\t");
a.name = Console.ReadLine(); //error
a.FirstName = Console.ReadLine();//no error
a.print();
a.print1();
Console.ReadLine();
}
}
}
我对继承有一个疑问。在这种情况下,如果我们使用基类的实例,则它不适用于受保护的内部,而它正在用于受保护的内部。请告诉我原因.....
【问题讨论】:
-
您能否提供一个不起作用但应该起作用的代码示例?听起来您是在说您无法从成员方法访问受保护的变量,但事实并非如此。
-
我认为 OP 正试图从 Program 类中的
access类中访问name变量。这个编译时错误非常好问题。 -
@SudhakarTillapudi 这也是我的想法,但我唯一能想到的可能是问题是他试图从@987654325 中的静态方法访问(非静态)成员变量@.
-
对于未来的问题,请明确说明您的期望。 IE。当前导致编译时错误的行上的
// No Error!!并不是解释您的意思的最明显方式。
标签: c#