【问题标题】:C# tutorial, how to return a string in a method?C#教程,如何在方法中返回字符串?
【发布时间】:2018-02-23 00:46:13
【问题描述】:

我是 C# 新手,一直在 .NET Academy 上做教程。我一直坚持这个练习,不知道该怎么做。以下是要求:

  1. 创建一个名为 Astrodroid 的抽象类,该类提供一个名为 GetSound 的虚拟方法,该方法返回一个字符串。默认声音应该是“哔哔”字样。

  2. 实现一个名为“MakeSound”的方法,该方法将 GetSound 方法的结果写入控制台,后跟一个新行。

  3. 创建一个名为 R2 的派生类,该类继承自 Astrodroid。

  4. 重写 R2 类的 GetSound 方法,使其返回“Beep bop”。

这是我目前所拥有的:

using System;

// Implement your classes here.
public abstract class Astrodroid
{
    public virtual string GetSound { get { return "Beep beep"; } }
    void MakeSound ()
    {
        Console.WriteLine(GetSound);
    }
}


public class R2 : Astrodroid
{
    public override string GetSound { get { return "Beep bop"; } }
    void MakeSound ()
    {
        Console.WriteLine(GetSound);
    }
}

public class Program
{
    public static void Main()
    {

    }
}

现在我的问题是我不知道如何使“GetSound”成为一种方法而不会出现编译错误。你会怎么做呢?

【问题讨论】:

  • 当您将 GetSound 更改为方法时,您是否将其更改为抽象类和具体类(Astrodroid 和 R1)中的方法?

标签: c# methods properties


【解决方案1】:

看起来您已经将 GetSound 变成了一个属性,而不是一个方法。这个 sn-p 应该可以帮助您入门,而无需为您回答整个教程。

    public virtual string GetSound()
    {
        return "Beep beep";
    }

【讨论】:

    【解决方案2】:

    您几乎是对的,只需这样做:

    using System;
    
    // Implement your classes here.
    public abstract class Astrodroid
    {
        public virtual string GetSound()
        { 
            return "Beep beep";
        }
    
        public void MakeSound()
        {
            Console.WriteLine(GetSound());
        }
    }
    
    
    public class R2 : Astrodroid
    {
        public override string GetSound()
        {
            return "Beep bop";
        }
    }
    
    public class Program
    {
        public static void Main()
        {
    
        }
    }
    

    因此,您将 GetSound 设为一个方法并覆盖它,并且无需覆盖 MakeSound,因为该行为不会改变。

    【讨论】:

    • 成功了!非常感谢。我实际上之前尝试过,但没有在写行函数中添加额外的括号。大声笑哦,好吧
    猜你喜欢
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    相关资源
    最近更新 更多