gpt4 book ai didi

c# - 帮助重构我的 C# 代码,使其更易于维护并使用最佳编码实践

转载 作者:行者123 更新时间:2023-11-30 13:40:49 27 4
gpt4 key购买 nike

我有这个 C# 类结构,我想重构它以使用最佳编码标准(使用接口(interface)/抽象类),以便它更易于维护和重用。现在的代码并不糟糕,但也不理想。

我有一系列 TableItemGroup 类:AccountTableItemGroup、PendingVoteTableItemGroup 和 RequestingVoteTableItemGroup。每个 TableItemGrup 都包含一个字符串 SectionName 和一个与其对应的 TableItem 的列表……如下所示:

public class AccountTableItemGroup {
public string SectionName { get; set; }

public List<AccountTableItem> Items
{
get { return this._items; }
set { this._items = value; }
}
public List<AccountTableItem> _items = new List<AccountTableItem>();

public AccountTableItemGroup()
{
}
}

将来会有更多的 TableItemGroup,如果它们除了 List 部分之外都一样,我不想每次都必须复制代码并创建一个新的 Group 并进行那个小的更改。我知道一定有更好的方法。我想继续使用 List<> 泛型,这样我以后就不必转换任何东西了。

另一部分是 TableItems。我有 AccountTableItem、PendingVoteTableItem 和 RequestingVoteTableItem。 TableItems 彼此不同,但它们都共享三个公共(public)字符串——TitleLabel、DetailLabel 和ImageName。但在那之后,每个 TableItem 可能有也可能没有额外的属性或方法......因此:

public class AccountTableItem
{
public string TitleLabel { get; set; }

public string DetailLabel { get; set; }

public string ImageName { get; set; }

public bool SwitchSetting { get; set; }

public AccountTableItem()
{
}
}

所以我想问大家的问题是,如何重新定义我的类结构以允许尽可能多地重用代码并使用最佳编码标准?

我在考虑拥有一个抽象的 TableItem 类或使用 TableItemGroup 的接口(interface)?我知道使用接口(interface)或抽象类最适合编码标准,但我不知道它会如何减少我将拥有的代码量?

非常感谢您的帮助。

最佳答案

抽象出您的表项,将必要的字段添加到接口(interface)或基类中:

    interface ITableItem // or just a simple or abstract class
{
// common fields go here
}

然后您能否使您的项目组具有通用参数约束的通用性。

    public class ItemGroup<T> where T: ITableItem
{
public string SectionName { get; set; }

public List<T> Items { get; private set; }

public ItemGroup()
{
Items = new List<T>();
}
}

关于c# - 帮助重构我的 C# 代码,使其更易于维护并使用最佳编码实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6873869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com