23
Generic TryParse
ฉันพยายามสร้างส่วนขยายทั่วไปที่ใช้ 'TryParse' เพื่อตรวจสอบว่าสตริงเป็นประเภทที่กำหนดหรือไม่: public static bool Is<T>(this string input) { T notUsed; return T.TryParse(input, out notUsed); } สิ่งนี้จะไม่รวบรวมเนื่องจากไม่สามารถแก้ไขสัญลักษณ์ 'TryParse' ดังที่ฉันเข้าใจ 'TryParse' ไม่ได้เป็นส่วนหนึ่งของส่วนต่อประสานใด ๆ เป็นไปได้ที่จะทำเลย? ปรับปรุง: ใช้คำตอบด้านล่างฉันมาด้วย: public static bool Is<T>(this string input) { try { TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(input); } catch { return false; } return true; } มันใช้งานได้ค่อนข้างดี แต่ฉันคิดว่าการใช้ข้อยกเว้นในทางนั้นจะไม่เหมาะสมกับฉัน Update2: แก้ไขเพื่อส่งผ่านประเภทแทนที่จะใช้ generics: …