2011-03-14 15 views
5

जब मैं अपना .NET अनुप्रयोग बनाता हूं, तो असेंबली में क्या होगा? कोल इंडिया? और दूसरा प्रश्न, अलग-अलग .NET langugaes में एक ही चीज़ करते समय, क्या सीआईएल समानता की शर्तों में समान या समान होगा जो बिल्कुल वैसे ही काम करता है? धन्यवादक्या वीबीएनईटी और सी # सीआईएल वही दिखेंगे?

उत्तर

6

नहीं, वे वही नहीं होंगे।
वीबी.Net VB semantics प्राप्त करने के लिए कई आईएल निर्देशों के बजाय Microsoft.VisualBasic.dll में सहायक विधियों का उपयोग करता है।
इसमें समानता ("" = Nothing), कुछ स्ट्रिंग ऑपरेशंस शामिल हैं, और मुझे और याद नहीं है।

+0

अगर मुझे कभी भी कोड में – msarchet

+0

@msarchet में देखा गया है तो मुझे खुद को रोकना होगा: वीबी.Net में, उन्हें बराबर माना जाता है। – SLaks

+1

मुझे पता है कि यह बराबर माना जाता है, यह गलत लगता है। – msarchet

2

आप गारंटी नहीं दे सकते कि VB.Net और C# उसी आईएल पर उबाल जाएंगे, लेकिन बशर्ते आपने कार्यात्मक रूप से समान दिनचर्या लिखी हों, आईएल एक ही परिणाम उत्पन्न कर सकता है।

1

कई विधियों के लिए, संकलित परिणाम (सीआईएल) वही होगा।

हालांकि ऐसी भाषा में संरचनाएं हैं जो अलग-अलग हल हो जाती हैं, या बस संभव नहीं है। यह कभी भी एक ही निर्देश में परिणाम नहीं दे सकता है।

1

आईएलसीओडी (इंटरमीडिएट भाषा) में .net संकलन के आधार पर सभी भाषाएं। इसके परिणामस्वरूप आईएलकोड समान होगा, उदाहरण के लिए, किसी ऑब्जेक्ट पर सदस्य का उपयोग हमेशा समान होगा। हालांकि, ऐसी विशेषताएं हैं जिनके पास अन्य भाषाओं में प्रतिनिधित्व नहीं है, इसलिए यह संभव है कि उस भाषा में आईएलकोड व्यक्त नहीं किया जा सके, क्योंकि यह उस भाषा में उपलब्ध सुविधा का उपयोग नहीं करता है। हालांकि असेंबली का संदर्भ अभी भी संभव है।

1

यदि कोड एक ही तरीके से काम करता है, तो संकलक त्रुटियों को छोड़कर आप गारंटी दे सकते हैं कि आईएल जेनरेट उसी तरह काम करेगा।

हालांकि, यह संकलक पर निर्भर करता है कि यह आपके कोड को कैसे लागू करता है, और वीबी और सी # विभिन्न कंपाइलरों का उपयोग करते हैं, इस बात की कोई गारंटी नहीं है कि वे आपके कोड को उसी आईएल के रूप में लागू कर देंगे।

1

1) हाँ, सभी NET अनुप्रयोगों CIL

2) को संकलित किया गया है, नहीं, आईएल हमेशा अलग .NET भाषा के बीच की तरह नहीं होगा। वे समान स्रोत कोड संरचनाओं के लिए समान होंगे, लेकिन प्रत्येक भाषा में चीजों को लागू करने के तरीके में सूक्ष्म अंतर होता है, इसलिए आईएल थोड़ा अलग दिखता है (लेकिन अक्सर अपेक्षाकृत समान रूप से व्यवहार करता है)।

संबंधित मुद्दे