如何从派生类c#访问基类值

时间:2013-05-30 10:37:00

标签: c#

任何人都可以告诉我“如何在派生类中访问基类变量”?

示例:

Class 1.cs Code

public class baseClass
{
    public int intF = 0, intS = 0;
    public int addNo()
    {
        int intReturn = 0;
        intReturn = intF + intS;
        return intReturn;
    }
}

Public class child : baseClass
{
    public int add()
    {
        int intReturn = 0;
        intReturn = base.intF * base.intS;
        return intReturn;
    }
}

Class2.cs代码

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();
    }
}

问题出在子类中,它继承自基类..

intF和intS的值始终显示为0而不是5& 4。

任何人都可以告诉我哪里出错了吗?

此致

G.V.N.Sandeep

2 个答案:

答案 0 :(得分:3)

实例字段intFintS属于...实例,而不属于某种类型。当您为obj实例设置它们时,obj1实例中的相同字段具有默认值(零)。

您必须以这种方式分配5和4:

child obj1 = new child();
obj1.intF = 5;
obj1.intS = 4;

答案 1 :(得分:1)

您的字段不是static。您创建的每个实例(对象)都有一个单独的字段。

objobj1是不同的实例。

顺便说一下,在这种情况下无需使用base关键字。由于继承,child类中的两个字段。仅当当前类覆盖或隐藏基类中的成员时才使用base