c# -动态对象的隐式构造函数

本文关键字:构造函数 对象 动态 | 更新日期: 2023-09-27 18:06:45

给定以下class:

public class DataPair{
    public string Key { get; set; }
    public object Value { get; set; }
    public DataPair(string key, object value)
    {
        Key = key;
        Value = value;
    }
}

是否有机会实现类似

的东西?
public static implicit operator DataPair(dynamic value)
{
    return new DataPair(value.Key, value.Value);
}

我可以这样创建一个新实例

DataPair myInstance = {"key", "value"};

c# -动态对象的隐式构造函数

最后,在c# 7中,您可以使用像

这样的ValueTuples
public static implicit operator DataPair((string key, object value) value)
{
    return new DataPair(value.key, value.value);
}

,像

一样使用
DataPair dp = ("key", 234);

这可能是你能得到的最接近的:

public static implicit operator DataPair(string[] values)
{
    return new DataPair(values[0], values[1]);
}

并像这样使用:

DataPair myInstance = new []{"gr", "value"};

这是你能得到的最接近的,因为= {"gr", "value"};语法是为数组保留的,你不能子类化。