เป็นไปได้ว่าคำถามนี้จะเป็นเรื่องเริ่มต้น แต่ Google ก็ไม่ได้ให้คำตอบที่น่าประหลาดใจ
ฉันมีวิธีประดิษฐ์นี้ค่อนข้าง
T HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
มาจากพื้นหลัง C ++ ฉันคาดว่าสิ่งนี้จะทำงาน อย่างไรก็ตามมันไม่สามารถคอมไพล์ด้วย "ไม่สามารถแปลงชนิด 'T' เป็นสตริง" และ "ไม่สามารถแปลงชนิด 'T' เป็นสตริง" สำหรับการมอบหมายทั้งสองอย่างข้างต้น
ฉันกำลังทำอะไรบางอย่างผิดพลาดทางแนวคิดหรือเพิ่งมีไวยากรณ์ผิด โปรดช่วยฉันเรียงลำดับออก
ขอบคุณ!
typeof(T) == typeof(string)
ได้รับการแก้ไขที่รันไทม์ไม่ใช่เวลาคอมไพล์ ดังนั้นบรรทัดต่อไปนี้ในบล็อกจึงไม่ถูกต้อง