C#重构具有不同名称的重复属性设置器和获取器

时间:2019-10-14 22:44:51

标签: c# properties refactoring

我有一些公共属性,除了公共属性名称之外,它们是相同的。我只是想知道是否有更干净的方法,因为那里似乎有很多重复的代码。这是一个示例:

    public static bool Property1
    {
        get => LocalSettingsService.RetrieveSetting<bool>();
        set => LocalSettingsService.SaveSetting<bool>(value);
    }

    public static bool Property2
    {
        get => LocalSettingsService.RetrieveSetting<bool>();
        set => LocalSettingsService.SaveSetting<bool>(value);
    }        
    public static bool Property3
    {
        get => LocalSettingsService.RetrieveSetting<bool>();
        set => LocalSettingsService.SaveSetting<bool>(value);
    }
    public static bool Property4
    {
        get => LocalSettingsService.RetrieveSetting<bool>();
        set => LocalSettingsService.SaveSetting<bool>(value);
    }

RetrieveSetting和SaveSetting方法拉出CallingMemberName来完成任务。

削减重复代码的任何技巧吗?

1 个答案:

答案 0 :(得分:0)

美学

如果是关于美学的,那么您可以重新命名。

public static bool Property1 { get => LSL.Get<bool>(); set => LSL.Set(value); }
public static string Property2 { get => LSL.Get<string>(); set => LSL.Set(value); }
public static int Property3 { get => LSL.Get<int>(); set => LSL.Set(value); }
public static uint Property4 { get => LSL.Get<uint>(); set => LSL.Set(value); }

SaveSetting ... erm ...我的意思是Set不需要类型,因为可以从value的类型中推断出来。


IOptions<TOptions>

如果您需要更多的知识,可以查看.net core中的IOptions<TOptions>模式。