gpt4 book ai didi

c# - 从 "Access"类继承类后,使用 "protected"关键字时出现错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:05 28 4
gpt4 key购买 nike

我是 csharp 的新手,我发现如果我在子类中使用 protected 关键字,那么它只能在子类中访问,而不能在父类中访问。而且这种类型的变量或函数只能在子类中访问。我正在阅读 this 的教程.

但是,如果我从 Access 类继承,那肯定不会出现任何类型的错误,但我明白了。你能告诉我这里出了什么问题吗?

这是我的代码:

using System;

class Access
{

//here string is declared as protected ..
protected string name;

public void print()
{
Console.WriteLine("MY name is: {0}", name);
}
}

class MyProgram: Access
{
static void Main(string[] args)
{
Access ac1=new Access();

Console.WriteLine("Enter your name: ");

ac1.name = Console.ReadLine();
ac1.print();
}
}

最佳答案

This type of variable or function (protected) can only be accessed in child class

Access ac1=new Access();
...
ac1.name = Console.ReadLine(); //You would be getting error here.

这很明显,因为您不是通过派生类的实例访问基类的 protected 成员,而是创建基类的对象,即 Access 并尝试访问其 protected 导致错误的成员。

如果您创建派生类的对象,即 MyProgram,那么您将能够访问 protected 成员。

MyProgram p=new MyProgram();
p.name = Console.ReadLine(); // No Error!!

关于c# - 从 "Access"类继承类后,使用 "protected"关键字时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24646811/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com