Khi bạn quá tải một nhà điều hành, chẳng hạn như operator +
, CIL biên soạn trông giống như sau:Tại sao lại sử dụng tên 'op_Addition' cho toán tử '+' thay vì tên '+'?
.method public hidebysig specialname static bool op_Addition(...) { ... }
Tại sao sử dụng tên op_Addition
ở đây và không, nói rằng, tên +
?
Tôi gợi ý rằng cú pháp CIL cần phải có được
.method public hidebysig specialname static bool +(...) { ... }
Và tên thành viên, khi tìm kiếm nó, có thể đã được +
hơn op_Addition
.
Lưu ý: Đây là câu hỏi về thiết kế ngôn ngữ; "bởi vì spec nói như vậy" không phải là một câu trả lời hữu ích.
"vì thông số kỹ thuật nói ... nvm Tôi đoán rằng op_Addition dễ phân tích cú pháp sau đó + – Joe
Có lẽ bạn có thể giải thích lý do tại sao bạn cho rằng nó được gọi là' + 'thay thế. Đơn giản chỉ cần nói" nó phải là '+ "" là không hữu ích như tôi nói "bởi vì spec nói như vậy" – BoltClock
@BoltClock: Bởi vì toán tử là '+', không phải 'op_Addition'. Nó tự nhiên hơn để gọi nó là' + '. Tôi chỉ tự hỏi rằng những lý do này có thể là gì. – configurator