暗黙的に “string”をジェネリック型に変換できません

我々は以下のクラスを持っています

public class MyPropertyBase
{
    public int StartOffset { get; set; }
    public int EndOffset { get; set; }
}

public class MyProperty : MyPropertyBase
{
    public MyProperty(T propertyValue)
    {
        PropertyValue = propertyValue;
    }

    public T PropertyValue { get; set; }
}

class BE
{
    public MyProperty FUND_CITY { get; set; }

    public MyProperty SomeOtherProperty { get; set; }

    public List MyDataPoints { get; set; }
}

objBE として BE のインスタンスを作成し、
objBE.FUND_CITY = "Some Value" を割り当てるとエラーが発生します:

“文字列”をMyPropertyに変換できません。

ベストアンサー

その構文が必要な場合は、暗黙の変換が必要です。

例:

public class MyProperty : MyPropertyBase
{
    public MyProperty(T propertyValue)
    {
        PropertyValue = propertyValue;
    }

    public T PropertyValue { get; set; }

    public static implicit operator MyProperty(T t)
    {
       return new MyProperty(t);
    }
}

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です