Есть ли причина, по которой ваша Order
функция должна принимать object
?Если вы всегда ожидаете, что в функцию будет передано byte
(и вы не хотите поддерживать ничего, кроме byte
), то вместо этого вы должны сделать аргумент byte
.
Чтобы ответить на ваш конкретный вопрос, оператор is
проверяет тип значения;он не выполняет кастинг.Вам нужно было бы привести его так:
if (this.front.Item.Exponent <= (byte)obj)
{
return true;
}
Но если бы вы следовали приведенному выше совету, в вашем интерфейсе было бы определение функции, которое выглядит следующим образом:
bool Order(byte exponent);
(Обратите внимание, что я назвал его exponent
. Дайте своим параметрам и переменным значимые имена, а не такие вещи, как "obj")
Затем реализуйте это так:
public bool Order(byte exponent)
{
if (this.front.Item.Exponent <= exponent)
{
return true;
}
else
{
return false;
}
}
Еслихотите, вы можете просто код немного больше, удалив весь блок if
.Поскольку выражение внутри if
должно вычисляться как логическое значение, и это то, что возвращает ваша функция, тогда вы сможете свести все тело функции к одному выражению.