У меня проблема с преобразованием типа со следующим кодом:

public class pr<T>
{
    private T tt;

    public pr( T value ) {
        this.tt = value;
    }

    public static explicit operator T(pr<T> op)
    {
        return default(T);
    }

    public static explicit operator pr<T> (T op)
    {
        return null;
    } 
}

Применение:

        byte value = 255;
        pr<byte> property = new pr<byte>(50);

        property = (pr<byte>)value; // no error here, works well test it throught debugger.
        value = (pr<byte>)property; // An explicit conversion exists are u missing cast?

Скажите, пожалуйста, что я делаю не так. Я просто новичок и действительно не понимаю, что мне делать. Прошу прощения за плохой английский. Спасибо. P.S. неявное преобразование работает нормально.

1
sharpnewbie 23 Дек 2015 в 09:28

2 ответа

Лучший ответ
value = (byte)property;

Измените вторую строку, как указано выше. Ваш целевой тип в byte не pr<byte>

2
Akshey Bhat 23 Дек 2015 в 06:36

+ Изменить

value = (pr<byte>)property; // An explicit conversion exists are u missing cast?

В

value = (byte)property; // An explicit conversion exists are u missing cast?
0
Amir Shrestha 23 Дек 2015 в 06:38