คำถามติดแท็ก ambiguous-call

1
การหลีกเลี่ยงข้อยกเว้นการจับคู่ที่คลุมเครือ
ฉันกำลังเรียกใช้วิธีการแบบคงที่แยกวิเคราะห์ประเภทผ่านการสะท้อนเพราะฉันไม่ทราบประเภทของวัตถุในเวลาคอมไพล์ (ฉันรู้ว่ามันมีวิธีการแยกวิเคราะห์โดยใช้สตริง) อย่างไรก็ตามฉันได้รับข้อยกเว้นการจับคู่ที่คลุมเครือซึ่งน่าจะเป็นเพราะมีวิธีการแยกวิเคราะห์ที่มากเกินไปซึ่งแต่ละวิธีใช้วัตถุชิ้นเดียว (สตริง, int, คู่ ฯลฯ ) ฉันจะเจาะจงมากขึ้นในการเรียกใช้เมธอดของฉันได้อย่างไรเพื่อให้แน่ใจว่าฉันไปถึงวิธีการที่ถูกต้อง ( แยกวิเคราะห์ (สตริง s) ) และข้อยกเว้นจะไม่ถูกโยนทิ้ง รหัสของฉันมีลักษณะดังนี้: Type returnType = p.PropertyType; object value = returnType.GetMethod("Parse").Invoke(null, new string[] { "1" });

3
เหตุใดค่า int ที่เป็นลบมากที่สุดจึงทำให้เกิดข้อผิดพลาดเกี่ยวกับการโอเวอร์โหลดของฟังก์ชันที่ไม่ชัดเจน
ฉันกำลังเรียนรู้เกี่ยวกับการทำงานมากเกินไปใน C ++ และเจอสิ่งนี้: void display(int a) { cout << "int" << endl; } void display(unsigned a) { cout << "unsigned" << endl; } int main() { int i = -2147483648; cout << i << endl; //will display -2147483648 display(-2147483648); } จากสิ่งที่ฉันเข้าใจค่าใด ๆ ที่กำหนดในintช่วง (ในกรณีของฉันintคือ 4 ไบต์) จะเรียกdisplay(int)และค่าใด ๆ ที่อยู่นอกช่วงนี้จะไม่ชัดเจน …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.