通过将静态字段作为方法参数传递来更新静态字段

问题描述 投票:0回答:1

我的应用程序将涉及大量静态字段的修改。我想知道如何通过将不同类的静态字段作为方法参数传递给实用程序 setter 方法来更新它们。

internal static class Hero1
{
  public static bool awesomeAbility = false;
  public static bool anotherAwesomeAbility = false;
}

internal static class Hero2
{
  public static bool awesomeAbility = false;
  public static bool anotherAwesomeAbility = false;
}

internal static class Utils
{
  public static async void ToggleAbility(ability, bool value)
  {
    Logger.Write($@"{ability} = {value}");
    ability = value;
  }
}

// example usage....
ToggleAbility(Hero1.awesomeAbility, true);
ToggleAbility(Hero2.anotherAwesomeAbility, false);
c# static-methods helper
1个回答
0
投票

嗨,您需要

ref
关键字才能实际更改所属类(静态或非静态)中的字段值。否则,您只需更改调用该方法后所保存的副本即可。

internal static class Utils
{
  public static async void ToggleAbility(ref bool ability, bool value)
  {
    Logger.Write($@"{ability} = {value}");
    ability = value;
  }
}

ToggleAbility(ref Hero1.awesomeAbility, true);
ToggleAbility(ref Hero2.anotherAwesomeAbility, false);
© www.soinside.com 2019 - 2024. All rights reserved.