5
Expression.Quote () ทำอะไร Expression.Constant () ไม่ได้แล้ว
หมายเหตุ: ฉันทราบถึงคำถามก่อนหน้านี้ " อะไรคือจุดประสงค์ของวิธี Expression.Quote ของ LINQ? ”แต่ถ้าคุณอ่านคุณจะเห็นว่ามันไม่ตอบคำถามของฉัน ฉันเข้าใจจุดประสงค์ที่ระบุไว้Expression.Quote()คืออะไร อย่างไรก็ตามExpression.Constant()สามารถใช้เพื่อวัตถุประสงค์เดียวกันได้ (นอกเหนือจากวัตถุประสงค์ทั้งหมดที่Expression.Constant()ใช้สำหรับ) ดังนั้นฉันไม่เข้าใจว่าทำไมจึงExpression.Quote()จำเป็นต้องมี เพื่อแสดงให้เห็นสิ่งนี้ฉันได้เขียนตัวอย่างสั้น ๆ ที่ซึ่งปกติจะใช้Quote(ดูบรรทัดที่มีเครื่องหมายอัศเจรีย์) แต่ฉันใช้Constantแทนและมันก็ทำงานได้ดีพอ ๆ กัน: string[] array = { "one", "two", "three" }; // This example constructs an expression tree equivalent to the lambda: // str => str.AsQueryable().Any(ch => ch == 'e') Expression<Func<char, bool>> innerLambda = ch …