Có sự khác biệt nào giữa việc sử dụng các thuộc tính Optional
và DefaultParameterValue
và không sử dụng chúng không?Sử dụng thuộc tính "Tùy chọn, Mặc địnhParameterValue" hay không?
public void Test1([Optional, DefaultParameterValue("param1")] string p1, [Optional, DefaultParameterValue("param2")] string p2)
{
}
public void Test2(string p1= "param1", string p2= "param2")
{
}
cả công việc:
Test1(p2: "aaa");
Test2(p2: "aaa");
Câu hỏi hay, thậm chí không biết các thuộc tính đó tồn tại. – HimBromBeere
Có, nhưng bạn không có khả năng gặp phải nó trong thực tế khi bạn viết mã như thế này. Thuộc tính [Tùy chọn] bị tấn công trong C# phiên bản 4 để giúp viết mã COM interop dễ dàng hơn. Đối số sẽ phải là đối tượng mà không có mặc định để xem nó, người gọi sau đó vượt qua Type.Missing. Sử dụng đường cú pháp được cung cấp là tất nhiên luôn luôn tốt nhất. –