You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET开发中将两个属性合并为单个属性的技术问题咨询

.NET 两个姓名属性合并实现方案

现有属性定义:

public string L_NAME { get; set; }
public string F_NAME { get; set; }

以下是不同场景的实现方案:

  • 方案1:只读计算属性(最常用,无额外存储开销)
    适用于只需要读取合并后的值,不需要通过合并属性反向修改两个原始属性的场景,值会随L_NAME、F_NAME的变更自动更新:

    // 合并为全名,自动去除两端多余空格
    public string FULL_NAME => $"{F_NAME} {L_NAME}".Trim();
    

    如果需要调整姓和名的顺序、或者用其他字符分隔,直接修改$""内的拼接逻辑即可

  • 方案2:支持读写的合并属性
    适用于需要给合并后的属性赋值,自动拆分更新L_NAME和F_NAME的场景:

    public string FULL_NAME
    {
        get => $"{F_NAME} {L_NAME}".Trim();
        set
        {
            if (string.IsNullOrWhiteSpace(value))
            {
                F_NAME = string.Empty;
                L_NAME = string.Empty;
                return;
            }
            // 按第一个空格拆分,前半部分为F_NAME,后半部分为L_NAME,可根据需求调整拆分规则
            var nameParts = value.Split(' ', 2, StringSplitOptions.RemoveEmptyEntries);
            F_NAME = nameParts[0];
            L_NAME = nameParts.Length > 1 ? nameParts[1] : string.Empty;
        }
    }
    
  • 方案3:完全替换原有属性(兼容旧业务/序列化场景)
    如果你要彻底删除L_NAME和F_NAME,统一只用合并后的属性,可以直接定义:

    public string FULL_NAME { get; set; }
    

    如果需要兼容旧的序列化数据、或者旧代码调用,可以给原有属性标记过时提示:

    [Obsolete("请使用FULL_NAME属性替代", false)]
    public string L_NAME { get; set; }
    [Obsolete("请使用FULL_NAME属性替代", false)]
    public string F_NAME { get; set; }
    

内容的提问来源于stack exchange,提问作者programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 15:09:04