Tôi đã tạo phương thức C# trong studio trực quan chỉ chứa một câu lệnh chuyển đổi trong đó mỗi trường hợp trả về một giá trị. Theo thói quen cá nhân, tôi đặt một cái gì đó tương tự như mã sau đây:C# Tuyên bố chuyển đổi: Hiệu quả hơn để không sử dụng mặc định?
private string SwitchMethod(int num)
{
switch (num)
{
case 0:
return "result 1";
case 1:
return "result 2";
case 2:
return "result 3";
}
return "no result";
}
Câu hỏi của tôi là: Mã nào sẽ có hiệu suất tốt hơn? Mã trên hoặc dưới, hoặc giống nhau? Và tại sao?
Tôi cho rằng vì tối ưu hóa trình biên dịch ... chúng có thể chỉ giống nhau ... nhưng tôi thực sự không biết.
private string SwitchMethod(int num)
{
switch (num)
{
case 0:
return "result 1";
case 1:
return "result 2";
case 2:
return "result 3";
default:
return "no result";
}
}
RÀ SOÁT: Dường như tôi nên cụ thể hơn: Khi biên soạn ... sẽ mã ít hiệu quả được tạo ra bởi một hay khác?
Tôi nhận thấy rằng sự khác biệt về hiệu suất có thể không đáng kể ... Tôi thực sự tò mò.
Điều này khá chủ quan. Tôi tránh có nhiều điểm thoát khỏi một phương thức hoặc hàm, nhưng YMMV. Nếu bạn thực sự tò mò, hãy xem IL. –
Đã biên soạn? Tôi không ở phía trước trình biên dịch của tôi, nhưng tôi gần như chắc chắn là một mặc định là bắt buộc. –
Ném một ngoại lệ cho biết "không nên đến đây" cho mặc định nếu bạn thực sự nghĩ rằng nó sẽ không xảy ra – Matt