当我在两个 类 之间使用继承时,变量正在初始化

The variables are initializing when I'm using inheritance between two classes

这是我写的代码:

public class shapess
{
    public int len1, len2, len3;
    public void SetVars (int Len1, int Len2, int Len3)
    {
        len1 = Len1;
        len2 = Len2;
        len3 = Len3;
    }
}
public class triangle : shapess
{
    shapess sh = new shapess();
    public void Perimeter()
    {
        sh.SetVars(3, 6, 9);
        int peri = len1 + len2 + len3;
        Console.WriteLine("The perimeter is: "+peri);
    }
}

当我尝试使用 triangle tr = new triangle(); tr.Perimeter(); 播放它时,它显示我的变量(len1、len2 和 len3)等于 0,输出为:The perimeter is: 0。 我的问题是什么?

您正在 Trangle class 中创建一个 Shapess 实例并设置该实例的 len1,len2 ..而不是 Trangle 本身的值 len1,len2...。尝试

public class triangle : shapess
{
    public void Perimeter()
    {
        SetVars(3, 6, 9);
        int peri = len1 + len2 + len3;
        Console.WriteLine("The perimeter is: "+peri);
    }
}