Tôi gọi một phương pháp tĩnh Parse trên một loại thông qua phản ánh bởi vì tôi không biết loại đối tượng tại thời gian biên dịch (tôi biết, tuy nhiên, nó có một phương pháp Parse , lấy một chuỗi).Tránh một trận đấu ngoại lệ mơ hồ
Tuy nhiên, tôi nhận được ngoại lệ đối sánh mơ hồ, có lẽ vì có quá nhiều phương thức quá tải Parse mỗi phương thức lấy một đối tượng (chuỗi, int, double, v.v ...).
Làm cách nào tôi có thể cụ thể hơn trong lời gọi phương pháp để đảm bảo tôi tiếp cận đúng phương pháp (Phân tích cú pháp (chuỗi s)) và ngoại lệ không được ném.
Mã của tôi trông như thế này:
Type returnType = p.PropertyType;
object value = returnType.GetMethod("Parse").Invoke(null, new string[] { "1" });
@Bitterblue Tôi đang bối rối vì sao bạn muốn viết bình luận rằng - và tại sao bạn xem xét các vấn đề phong cách đáng để thảo luận? –
Bài thuyết trình là tốt, nó chỉ xảy ra theo một phong cách khác với phong cách bạn thích. Bạn đã nhận xét dọc theo dòng "Tôi muốn sử dụng chiếc xe đạp này, nếu nó hơi xanh hơn". Điều này làm tôi bối rối. Chỉnh sửa nhận xét: Trừ khi bạn không biết rằng [] {} mới thực sự nhập loại Array và _IS_ tương đương với Loại mới [] trong trường hợp này? Trong trường hợp đó tôi xin lỗi - tôi giả định rằng bạn nhận xét về phong cách (cả hai hoạt động) trong khi có khả năng suy nghĩ đoạn mã là sai (nó không phải là). –
Cảm ơn câu trả lời, các bạn. Để lưu các chàng tiếp theo một số rắc rối, cho các loại tài liệu tham khảo, sử dụng một cái gì đó như thế này: typeof (string) .MakeByRefType(); – BRebey