如何从c#中的另一个继承类调用方法

时间:2016-04-25 05:00:35

标签: c# class inheritance methods virtual-inheritance

我有一个类和方法如下

public class Wakeup : World
{
    public void MethodA(string)
        {
            Log.writeline("Wakeup World");
        }
}

下面是另一个类和方法,我试图调用" MethodA"

public class Hello : World
{
    public void MethodB()
        {
            Wakeup p = new Wakeup;
            p.MethodA(string);
        }
}

这不是工作。无法拨打" MethodA"在" MethodB"

注意:两个类都被继承到其他一个名为" World"

的类

任何人都可以建议我如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

正确地在第二个类中创建第一个类的实例,在第二个类方法调用中也传递一些string value而不是string type

 public class Wakeup : World
    {
       public void MethodA(string text)
           {
               Log.writeline(text);
           }
    }
 public class Hello : World
    {
        public void MethodB()
            {
                Wakeup p = new Wakeup();
                p.MethodA("Wakeup World");
            }
    }

答案 1 :(得分:1)

你有一个拼写错误,你没有在实例化你的Wakeup类时放置()。它应该如下:

Wakeup p = new Wakeup();

另一件事,你不应该将类型本身传递给方法,换句话说,不要传递类型字string,而是传递字符串值。字符串值放在引号“”标记内,如下所示:“Hello,World”。

因此,以下代码类Hello应该可以正常工作。注意我是如何实例化你的Wakeup类,并将值传递给方法A.这是完整的代码:

public class Wakeup : World
{
    public void MethodA(string strValue)
    {
        Console.WriteLine(strValue);
    }
}
public class Hello : World
{
    public void MethodB()
    {
        Wakeup p = new Wakeup();
        p.MethodA("Hello, World");
    }
}

答案 2 :(得分:0)

对我很有用

public class World { }

public class Wakeup : World
{
    public void MethodA(string a)
    {
        Console.WriteLine("Wakeup World");
    }
}
public class Hello : World
{
    public void MethodB()
    {
        Wakeup p = new Wakeup();
        p.MethodA("Dsa");
    }
}