Невозможно неявно преобразовать тип «int» в «string»

    Random randgen = new Random();
    int dkey;
    public object SetScore(int val)
    {
        dkey=randgen.Next(int.MaxValue/2);
        return val ^ dkey;                //^ means XOR.
    }
    public string GetScore(int val)
    {
        return val ^ dkey;
        GC.Collect();
    }

От public string GetScore(int val) { return val ^ dkey; GC.Collect(); } return val ^ dkey показывает ошибку

Невозможно неявно преобразовать тип 'int' в 'string'


person Koay Hv    schedule 07.06.2013    source источник
comment
return (val ^ dkey).ToString();? - А почему у вас GC.Collect(); после возврата? Все после возврата отбрасывается компилятором, поэтому эта строка никогда не будет выполнена.   -  person Corak    schedule 07.06.2013
comment
Вы хотите вернуть строку или целое число из GetScore()?   -  person Matthew Watson    schedule 07.06.2013
comment
Ошибка компилятора говорит вам, что не так. Были ли у вас проблемы с пониманием того, что означает ошибка?   -  person    schedule 07.06.2013


Ответы (2)


Ваш метод GetScore возвращает строку, а val ^ dkey — целое число. Либо преобразуйте результат в строку с помощью:

return (val ^ dkey).ToString();

или вернуть целое число:

public int GetScore(int val) ...

О, и, пожалуйста, уберите вызов GC.Collect(). Называть его самостоятельно почти никогда не бывает хорошей идеей. По крайней мере, он аккуратно размещен в недоступном месте...

person zmbq    schedule 07.06.2013

Быстрое решение:

return "" + (val ^ dkey);  
person Naruil    schedule 07.06.2013