При назначении значения по умолчанию параметру uint
в аргументе метода C #, как показано в первом блоке кода ниже, я получаю сообщение «Значение типа int нельзя использовать в качестве параметра по умолчанию потому что нет стандартных преобразований для типа 'uint' ", тогда как при присваивании int переменной uint в теле метода это нормально.
Код компилируется; предупреждение предоставляется с помощью красного, волнистого подчеркивания в Visual Studio 2010.
void GetHistoricData(uint historyLength = 365)
{
uint i = 365; // this is valid
}
Это легко решается с помощью 365U вместо 365, таким образом:
void GetHistoricData(uint historyLength = 365U)
{
// method body
}
Мне действительно трудно найти хорошее объяснение того, почему недопустимо присваивать int
параметру uint
в параметре, когда это допустимо делать в другом месте. Кто-нибудь может мне помочь с моментом «лампочки», который я пытаюсь найти?