c# - 让一个方法在另一个方法中返回一个字符串是不好的做法吗?

标签 c#

<分区>

所以,我正在为我的数据结构类中的赋值编写一些代码,我想知道使用一个方法将一个值返回到另一个方法中是否通常是不好的做法

public void PrintLocation(MarsLander ml)
{
    for (int i = 10; i >= 0 ; i--)
    {
        Console.Write("{0} m: {1}", i * 100, WheresTheSpaceship(ml, i));
    }

    Console.WriteLine();
}

public string WheresTheSpaceship(MarsLander ml, int i)
{
    if (i == ((ml.GetHeight() % 100) + 9))
    {
        return " * \n";
    }
    else
    {
        return "\n";
    }
}

WheresTheSpaceship 方法应该返回是否打印宇宙飞船的位置(*)只是缩进到下一行并返回到 PrintLocation 方法来重申环形。 (这是我的第一个问题,请放轻松 :))

最佳答案

一般来说,保持方法简短并具有特定目的是一种很好的做法,否则它们可能会被滥用。 (您的方法确定是否应打印该位置并格式化输出)。
该方法应返回其预期用途:如果您想询问是否应打印该位置,更合适的方法是:

public bool ShouldPrintLocation(MarsLander ml, int i)
{
    return (i == ((ml.GetHeight() % 100) + 9);
}
如果有必要,

PrintLocation() 将实际打印位置:

public void PrintLocation(MarsLander ml)
{
    for (int i = 10; i >= 0 ; i--)
    {
        string locationText = ShouldPrintLocation(ml, i) ? "*" : string.Empty;
        Console.WriteLine("{0} m: {1}", i * 100, locationText);
    }

    Console.WriteLine();
}

对我来说,在 PrintLocation 中设置输出格式更有意义,因为此方法旨在......打印位置,而不是进行一些逻辑/计算

关于c# - 让一个方法在另一个方法中返回一个字符串是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36538463/

相关文章:

c# - 64 位 gethashcode 是否可用于对象?

c# - 在 C# 中迭代​​ RadGrid 中的每个单元格

c# - 从输入中转义的 SQL 特殊字符

c# - WCF(或替代方案)在 Internet 上的机器上设置 Controller-worker

c# - 在显示之前设置数组的最大和 C#

c# - 如何使用 try catch 进行异常处理是最佳实践

c# - 使用 Linq 将带有嵌套列表的列表转换为单独的列表

c# - Entity Framework Code First 30+ 秒启动时间

c# - 如何从 asp.net mvc 中的字符串返回 FileResult

c# - TabControl.SelectedItem 不是 TabItem? RelativeSource 绑定(bind)失败