Tôi mong đợi những đối số tùy chọn ngọt ngào từ những ngày tôi lập trình bằng C++. Tôi biết họ không tồn tại trong C#, nhưng câu hỏi của tôi là Tại sao phải là.Lý do cho C# không hỗ trợ các đối số mặc định/mặc định là gì?
Tôi nghĩ rằng quá tải phương thức là một sự thay thế kém khiến mọi thứ trở nên lộn xộn rất nhanh.
void foo(int x,int y,int z=0){
//do stuff...
}
//is so much more clean than
void foo(int x,int y){
foo(x,y,0);
}
void foo(int x,int y,int z){
//do stuff
}
Tôi chỉ không hiểu lý do là gì. Trình biên dịch C# rõ ràng sẽ không gặp vấn đề gì khi chỉ hỗ trợ cho Microsoft.
Tại sao, khi C# được thiết kế, họ có muốn hỗ trợ các đối số tùy chọn không?
Sam Ng viết blog về nó, Triết học! : http://blogs.msdn.com/samng/archive/2009/04/17/named-and-optional-arguments-ties-and-philosophies.aspx –