我的属性有一个自定义包装器对象: MyType<t>
我有这些类型的私有(private)成员和 t 类型的公共(public)成员。

我正在尝试加载对象并出现转换错误:



我有以下方法:

private t _value;

public static implicit  operator t(MyType<t> obj)
{
    return obj._value;
}

任何帮助我让 Actor 发挥作用的东西都会很棒。

更新:

该成员如下所示:
 MyType<string> PostalCode =  new MyType<string>();

我正在使用 Dapper 加载属性,并且未命中建议的方法。因此,当反射引擎尝试加载对象时,隐式转换不会触发。

最佳答案

你的接线员倒退了。它支持从 MyType<t>t 的转换。你想反过来。也许这样的事情就是你正在寻找的。

 private t _value;

 private MyType(t val)
 {
      _value = val;
 }

 public static implicit operator MyType<t>(t obj)
 {
     return new MyType<t>(obj);
 }

使用构造函数是可选的,我个人只是觉得更干净。您可以只使用默认构造函数并在您的运算符中显式设置字段。

关于c# - Cast - 字符串到 Custom<string>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7092996/

10-16 20:00