Так что на днях я нашел эту маленькую жемчужину в нашей кодовой базе, и я хотел попытаться посмотреть, был ли человек, который написал ее, просто ленив или знал что-то, чего у меня нет.C# type-casting sender
Стандартный обработчик событий был написан, как это (я буду. -
private void OnSomeEvent(IVehicle sender, ISomeArgs args){
if((sender is Car) && (sender as Car).numWheels == 4 && (sender as Car).hasGas)
{
(sender as Car).drive();
}
}
Я видел ли это сразу подумал о многочисленных
ун-бокс
операций типа литья, которые напрасно предавались здесь я вновь -wrote это как SO-
private void OnSomeEvent(IVehicle sender, ISomeArgs args){
if (sender is Car){
Car _car = sender as Car;
if(_car.numWheels == 4 && _car.hasGas){
_car.drive();
}
}
}
Так сделал первый пример знает, что-то я не? знаю ли компилятор, который мы пытаемся
ип ящик
типа отлитого к тому же типу куче рази сделать некоторую оптимизацию?
Там нет распаковка происходит здесь вообще ,Типы интерфейсов являются ссылочными типами. –
Да, я думаю, ваше право, я имел в виду тип-литье, я думаю. – thebringking