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

如何修改C#自定义FieldSet类,直接引用实例返回fieldValue?

如何让C#自定义类实例直接返回指定属性值?

要实现直接将FieldSet实例赋值给string变量时自动获取fieldValue的值,你需要在类中定义隐式类型转换运算符——这是C#原生支持的类型转换机制,能让编译器自动完成实例到目标类型的转换。

修改后的FieldSet类代码如下:

public class FieldSet
{
    public FieldSet() { }

    public string fieldName { get; set; }
    public string fieldType { get; set; }
    public string fieldValue { get; set; }

    public FieldSet(string fName, string fType, string fValue)
    {
        fieldName = fName;
        fieldType = fType;
        fieldValue = fValue;
    }

    public override string ToString()
    {
        return fieldValue;
    }

    // 添加隐式转换为string的运算符
    public static implicit operator string(FieldSet fieldSet)
    {
        // 处理null情况,避免空引用异常,可根据业务调整逻辑
        return fieldSet?.fieldValue ?? string.Empty;
    }
}

现在你可以按期望的方式使用:

FieldSet rec = new FieldSet { fieldName = "ID", fieldType = "String", fieldValue = "6" };

string s1 = rec.ToString(); // s1 = "6"
string s2 = rec;            // s2 = "6",直接赋值即可获取fieldValue

补充说明

  • 隐式转换运算符必须声明为public static,并使用implicit关键字标记。
  • 代码中通过fieldSet?.fieldValue ?? string.Empty处理了实例为null的场景,你也可以根据需求改为抛出ArgumentNullException等逻辑。
  • 保留ToString()方法依然有价值,比如在字符串拼接、调试输出等场景中仍会默认调用该方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:31:17