【问题标题】:C# Cleanly assign every method parameter a single valueC# 干净地为每个方法参数分配一个值
【发布时间】:2017-07-28 01:37:30
【问题描述】:

我创建了一个函数(如下所示)将 9 个按钮的文本全部分配给“”(我通常尝试使用“”而不是出于一些不合逻辑的假设将变量分配给 null,所以我希望它是指出我是否不正确),但我觉得我可以以更简洁的方式将每个参数分配给空白字符串。

 public void resetText(ref string buttonText1, ref string buttonText2, ref string buttonText3, ref string buttonText4, ref string buttonText5, ref string buttonText6, ref string buttonText7, ref string buttonText8, ref string buttonText9)
    {
        buttonText1 = "";
        buttonText2 = "";
        buttonText3 = "";
        buttonText4 = "";
        buttonText5 = "";
        buttonText6 = "";
        buttonText7 = "";
        buttonText8 = "";
        buttonText9 = "";
    }

是否有一种更简洁/更短的方法来重新分配每个参数。如果我必须在这个函数中为 50 个变量分配一个新值,这看起来会很糟糕(我只是以按钮为例。)

【问题讨论】:

  • 似乎没有更清洁的方法可以做到这一点。但也许父函数可以通过将文本值保存在数组中来更好地做到这一点。
  • 所以你知道没有办法只遍历所有参数并为它们分配一个空值或类似的东西?
  • 可以更新为:buttonText1 = buttonText2 = buttonText3 = buttonText4 = buttonText5 = buttonText6= buttonText7 = buttonText8 = buttonText9 = string.Empty;
  • @zzT 这看起来确实有点干净,但仍然不完全更短/干净。
  • 这似乎是XY 类型的问题。您有一个方法可以通过引用控件的 Text 属性来重置控件的文本属性。一个更简单的解决方案是将控件本身发送到要执行的方法。

标签: c# .net visual-studio c#-4.0


【解决方案1】:

这几乎是最好的方法。它简单易读。

如果你真的想减少字符数,你可以这样做buttonText1 = buttonText2 = buttonText3 = ... = "";

另一种减少代码大小的方法是通过反射来实现。我不建议这样做,因为它会使代码过于复杂,只保存几个字符。

【讨论】:

    猜你喜欢
    • 2016-07-29
    • 2022-01-11
    • 2017-04-05
    • 2021-07-23
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    相关资源
    最近更新 更多