Procházet zdrojové kódy

重构ConfigEntry<T>的Edit方法以支持引用修改

龙腾猫跃 před 4 měsíci
rodič
revize
8e87d13d76
1 změnil soubory, kde provedl 4 přidání a 2 odebrání
  1. 4 2
      Shared/General/Config.cs

+ 4 - 2
Shared/General/Config.cs

@@ -114,12 +114,14 @@ public class ConfigEntry<T>(string key, T? defaultValue, IConfigProvider? defaul
         var provider = providerOverride ?? DefaultProvider;
         var provider = providerOverride ?? DefaultProvider;
         Set(editFunc(Get(provider)), provider);
         Set(editFunc(Get(provider)), provider);
     }
     }
-    public void Edit(Action<T?> editFunc, IConfigProvider? providerOverride = null) {
+    public void Edit(RefAction editAction, IConfigProvider? providerOverride = null) {
         var provider = providerOverride ?? DefaultProvider;
         var provider = providerOverride ?? DefaultProvider;
         var current = Get(provider);
         var current = Get(provider);
-        editFunc(current);
+        editAction(ref current);
         Set(current, provider);
         Set(current, provider);
     }
     }
+    public delegate void RefAction(ref T? value);
+
     public void Set(T? value, IConfigProvider? providerOverride = null) {
     public void Set(T? value, IConfigProvider? providerOverride = null) {
         var provider = providerOverride ?? DefaultProvider;
         var provider = providerOverride ?? DefaultProvider;
         T? current = Get(provider);
         T? current = Get(provider);