c# - 在派生类中访问基类变量

标签 c# variables base derived

class Program
{
    static void Main(string[] args)
    {
        baseClass obj = new baseClass();
        obj.intF = 5;
        obj.intS = 4;
        child obj1 = new child();
        Console.WriteLine(Convert.ToString(obj.addNo()));
        Console.WriteLine(Convert.ToString(obj1.add()));
        Console.ReadLine();
    }
}
public class baseClass
{
    public int intF = 0, intS = 0;
    public int addNo()
    {
        int intReturn = 0;
        intReturn = intF + intS;
        return intReturn;
    }
}
class child : baseClass
{
    public int add()
    {
        int intReturn = 0;
        intReturn = base.intF * base.intS;
        return intReturn;
    }
}

无论我输入什么,我都想访问子类中的 intF 和 intS。但我总是得到两个变量的值 0。0 是两个变量的默认值。

谁能告诉我怎样才能得到这个值???

感谢...

最佳答案

是的,零是你应该得到的,因为你创建了子类的单个实例并且没有为其继承的变量分配任何值,

child obj1 = new child();

而是你单独实例化了基类的另一个实例并为其成员赋值,

baseClass obj = new baseClass();

运行时基类实例和子实例都是完全不同的对象,所以你应该单独分配子值

obj1.intF = 5;
obj1.intS = 4;

只有你才能得到想要的结果。

关于c# - 在派生类中访问基类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5296026/

相关文章:

c# - 将 DisplayTemplate 设置为 WebGrid 列

c# - 异步方法中的 Task.Run() 导致线程池饥饿?

c# - P/调用 : converting this signature to Managed c#

php $GLOBALS 显示未定义 "_SERVER"

c# - 如何在新实现的接口(interface)或基类之间做出决定?

c# - 为什么数组初始化在静态上下文中?

Select 语句中的 PHP 变量

bash - 从名称取自另一个变量的变量中获取内容

fft - 如何使用 FFT 将一个非常大的整数从一个基数/基数转换为另一个?

java - API 中的碱基转换方法是什么?