6

可以将泛型类映射到复杂类型吗?我有 3 个属性的小类 - 字符串、int 和泛型类型,并且想要将字符串和 int(字符串实际上是序列化的泛型类型)映射到复杂类型。

我认为这是不可能的,因为泛型类“FQDN”MyGenericClass<somclass>和复杂类型概念类型只是MyGenericClass有聪明的解决方案,还是我必须为泛型类的每次使用定义 ComplexType?

4

1 回答 1

1

我不知道我是否理解正确,但你为什么不通过覆盖转换运算符来使用自定义强制转换。在以下示例中,我将通用复杂类隐式转换为非通用类。

阅读更多@如何为我的班级提供自定义演员支持?

public class ClassComplex<T> 
{
    public T MyGenericValue { get; set; }
    public string MyStringValue { get; set; }
    public int MyIntValue { get; set; }

    public static implicit operator ClassComplex(ClassComplex<T> a)
    {
        return new ClassComplex() { MyIntValue = a.MyIntValue , MyStringValue = a.MyStringValue };
    }
}

public class ClassComplex
{
    public string MyStringValue { get; set; }
    public int MyIntValue { get; set; }
}

public class Test
{
    public Test()
    {
        ClassComplex<int> ccg = new ClassComplex<int>();
        ccg.MyGenericValue = 1;
        ccg.MyIntValue = 2;
        ccg.MyStringValue = "3";

        ClassComplex cc = ccg;
    }
}
于 2013-03-12T15:58:00.070 回答