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

为何同一类中无法同时拥有id和set_id属性?

解决C#属性命名冲突问题

问题原因

C#编译器会为属性的set访问器自动生成名为set_<属性名>的方法。当你定义id属性时,编译器会自动生成set_id方法;而你手动定义的set_id属性会和这个自动生成的方法产生命名冲突(C#标识符解析不区分大小写),因此抛出CS0102错误。

无需重命名属性的解决方法

手动实现id属性的访问器

通过自定义后台字段,手动编写id属性的get和set逻辑,避免编译器自动生成set_id方法,从而解决冲突:

private string _id;
public string id
{
    get { return _id; }
    set { _id = value; }
}
public string set_id { get; set; }

显式接口实现(适用于类实现接口的场景)

如果你的类需要实现某个接口,可以将其中一个属性通过显式接口实现来定义,这样编译器生成的访问器方法会带上接口名称,避免命名冲突。例如:

public interface IMyInterface
{
    string id { get; set; }
}

public class MyClass : IMyInterface
{
    string IMyInterface.id { get; set; }
    public string set_id { get; set; }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:33:17