代码之家  ›  专栏  ›  技术社区  ›  Suffian Samsuddin

为什么C#方法不返回值?

  •  0
  • Suffian Samsuddin  · 技术社区  · 2 年前

    原因很容易理解 method() 返回一个值——但我无法理解不返回值的方法的概念。

    static void PrintName(string firstName, string lastName)
    {
        Console.Writeline($"{firstName} {lastName}");
    }
    

    这种方法可以打印 firstName lastName 到控制台,但不返回值。程序员为什么要这么做?它是如何使用的?

    3 回复  |  直到 2 年前
        1
  •  1
  •   41686d6564    2 年前

    考虑返回值的方法,就像它们是问题的答案一样:

    问:今天几号?
    答:2022年4月15日。

    public string GetTime() { return DateTime.Now.ToShortDateString(); }
    

    把不返回值的方法想象成基于请求执行的操作。

    请把这个杯子放在桌子上。
    第二个人:*把杯子放在桌子上*- 什么都不用说

    public void PutMugOnTheTable(Mug mug) { Table.Items.Add(mug); }
    

    另请参见软件工程SE上的相关帖子:
    When and why you should use void (instead of e.g. bool/int)

        2
  •  1
  •   Choi Min Gyu    2 年前

    根据名称,没有理由返回该值。 如果你创建或构建了一些东西,你可以期待结果,但是很难期待内部操作的结果,比如添加、删除、打印等。

        3
  •  0
  •   Logarr    2 年前

    有很多理由不返回值。你的例子很好。您希望从该方法返回哪些可能的信息?它是一个独立的函数,不会操作任何数据或影响程序的状态。返回值用于传回操作结果、状态、修改的数据等。对于不需要任何内容的情况 void .

    现在你可能认为你宁愿 PrintName 返回一个布尔值表示成功,但编写的方法刚刚开始工作。放入return语句并使用返回值会增加代码复杂性,但没有任何好处。