לדלג לתוכן

תרגול חקירת קוד שנוצר

צרו פונקציות SumChecked ו־SumUnchecked וצלמו את ה־IL ואת ה־assembly שלהן ב־Release. בדקו קלט רגיל וקלט שגולש. הסבירו איזה חלק מן ההבדל מחויב על ידי השפה ואיזה חלק הוא בחירת קוד מכונה.

הסירו את NoInlining ובדקו האם הפונקציה עדיין מופיעה כקריאה נפרדת בתוך caller שנבחר לאבחון. אל תפרשו העדר פלט של שיטה כהוכחה שאף קוד שלה לא בוצע. שמרו את גרסת ה־SDK, גרסת ה־runtime, הארכיטקטורה ומשתני הסביבה יחד עם הפלט.

הוסיפו factory שמחפש טיפוס לפי שם באמצעות reflection. בנו בנייה רגילה ופרסום trimmed, ואם קיימים כלי native מתאימים גם NativeAOT. אספו אזהרות והציעו factory מפורש שמקבל שם מוכר בלי טעינה דינמית. נדרש להסביר איזה שינוי חוזה מאפשר לניתוח לראות את התלות.