6

ジェネリック クラスを複合型にマップすることは可能ですか? 文字列、int、ジェネリック型の 3 つのプロパティを持つ小さなクラスがあり、文字列と 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 に答える