2009-01-26 6 views
12

सी # में सी के एक सुपरसेट वैसे भी, ऑब्जेक्टिव-सी या सी ++ की तरह है? क्या इस तरह के कंपाइलर झंडे के साथ सी ऑनलाइन संकलित करने का कोई तरीका है?सी # सी का एक सुपरसेट है?

+0

संबंधित: http://stackoverflow.com/questions/8586218/is-c-sharp-a-super-set-of-c-just-like-objective-c-and-c –

उत्तर

37

एक शब्द में, संख्या

+0

यही मैंने सोचा था, बहुत बुरा –

+1

मैं नहीं कहूंगा कि यह बुरा है।यह सी की समस्याओं के साथ तोड़ने का एक अच्छा तरीका साबित हुआ है जो 80 के दशक की तारीख है। –

+0

यह आश्चर्यजनक है कि इस उत्तर को +18 मिल जाता है ... जबकि अन्य लोगों को समय, अनुसंधान और विचार की आवश्यकता होती है, उनके पास कहीं भी नहीं मिलता है। यह शर्मनाक है। – bobwienholt

12

किसी भी सार्थक तरीके से नहीं। यह सी (दूसरों के बीच) से प्रेरित है, लेकिन वे काफी मौलिक रूप से अलग-अलग भाषाएं हैं।

10

सी # "ग की तरह" परिवार से आती हैं जहाँ तक के रूप में वाक्य रचना का संबंध है, लेकिन जहां तक ​​वास्तुकला के रूप में इसे और अधिक जावा की तरह लगता है (कोई संकेत [ठीक है, जैसा कि नीचे बताया, तो आप उन्हें उपयोग कर सकते हैं, लेकिन अधिकांश लोगों को इसके बारे में पता नहीं है या उनकी परवाह नहीं है], सरणी बाध्य हैं, कचरा एकत्रित स्मृति, आदि)।

आप सी ++ में इस बात का बहुत प्राप्त कर सकते हैं, लेकिन कोर में नहीं।

+0

यदि आप उन्हें – xyz

7

की इसे इस तरह रखते हैं:

C और C# समान हैं जैसे rm -rf . / और # rm -rf . / समान

संक्षेप में कर रहे हैं, कोई सी सी # के एक सबसेट नहीं है। सी पर कई नियंत्रण संरचनाओं का आधार सी। जैसे, लूप, स्विच, जबकि आदि। इसी समय, सी # संभावित खतरनाक निर्माणों की मनाही है, एक स्विच में एक मामला से गिरने जब एक ब्रेक भूल ;, या स्थिति है, जिसमें एक बूलियन की उम्मीद है, तो एक के रूप में एक पूर्णांक रखने जैसा। उपर्युक्त उद्धरण का अर्थ है कि सी # और सी बहुत समान दिख सकते हैं, लेकिन काफी अलग परिणामों में अनुवाद कर सकते हैं। जहां सी आपको अपने विभाजन से सबकुछ हटाने से नहीं रोकेगा, सी # आपको गलती से ऐसा करने से बचाएगा, जैसा कि बोली जाती है।

एक और स्तर पर, सी आप पूर्णांकों को टाइप-कास्ट करने के लिए संकेत दिए गए हैं, उन चारों ओर वापस डाली धक्का, और फिर स्मृति स्थल है कि तब है कि सूचक में जमा हो जाती एक्सेस कर सकते हैं। सी आपको स्मृति तक पहुंचने से नहीं बचाएगा जो आपके द्वारा आवंटित नहीं है। आपको एक दुर्घटना मिलेगी - सबसे अच्छा। सी # - दूसरी तरफ - अपवाद होंगे जो आपको नोटिस करते हैं जब आप ऑब्जेक्ट थ्रोग को एक नल-रेफरेंस तक पहुंचने जैसी चीजें करते हैं।

+0

या जावा और जावास्क्रिप्ट का उपयोग करना चाहते हैं तो पॉइंटर्स हैं :) –

+0

रॉबर्ट, हाहा हाँ मैंने इसे समानता से फटकारा: पी –

+0

मेरा पसंदीदा सादृश्य "जावा और जावास्क्रिप्ट एक कार और कालीन जैसा ही है। " –

3

सी # और सी वास्तव में संबंधित नहीं हैं (समान वाक्यविन्यास से अलग)। सी # आईएल से मशीन कोड के लिए नीचे jitted जब कार्यक्रम शुरू होता है। सी # कि ढेर पर मूल्य प्रकार के अपवाद के साथ संकेत नहीं है। सी # पूरी तरह से सुरक्षित है, सी नहीं है। सी को स्पष्ट मेमोरी प्रबंधन की आवश्यकता होती है जहां सी # कचरा एकत्र होता है। या तो (link text देखें)

+0

सी स्पष्ट स्मृति प्रबंधन की आवश्यकता नहीं है; कई जीसी पुस्तकालय हैं। बोहेम एक है। – jrockway

+0

लेकिन ... मूल रूप से सी को अभी भी स्पष्ट मेमोरी प्रबंधन की आवश्यकता है, चाहे आप इसे लाइब्रेरी में छुपाएं, इस तथ्य को छिपाए नहीं कि यह मूल रूप से प्रबंधित नहीं है। सी # के साथ इसे जाने से बुनियादी ढांचे में जला दिया गया है। – Kev

+0

आप सी # – SQLMenace

4

सी ++ सी के एक असली सुपरसेट नहीं है। ऐसा इसलिए नहीं है क्योंकि अर्थशास्त्र, जो अंत में बहुत अलग नहीं हैं, बल्कि अवधारणाओं के कारण, विचार # सी के पीछे हैं। इस मुख्य अंतर यह है:

जब आप सी # में कार्यक्रम आप एक अलग तरह में सोचने के लिए आप अगर आप सी का उपयोग करने के लिए उपयोग किया जाता है क्या से की है।

+1

में असुरक्षित कोड के साथ पॉइंटर्स कर सकते हैं तकनीकी रूप से हाँ ... लेकिन व्यावहारिक रूप से यह बहुत करीब है। लेकिन सी # सिंटैक्स के अलावा सी में करीब नहीं है। –

+0

यह है कि आप यह स्वीकार करने के इच्छुक हैं कि सी अभी भी अपनी भाषा है और अपने दाहिनी ओर बढ़ने के लिए जारी है और अगर बिर्टहेड (बजेर्ने इसे प्रत्यक्ष वंशज कहते हैं) सी ++ के बाद, उन्होंने तरीकों से अलग हो गए। बजेर्न ने इसे "एक बेहतर सी" कहा है, लेकिन यह एक अलग प्रतिमान के साथ अपनी भाषा है। – ChiefTwoPencils

2

सी # सी से बहुत अलग है (और यह भी सी ++ सी से बहुत अलग है) मतभेद की सूची में और पर चला जाता है ...

+1

ठीक है, मैं काट दूंगा: मान लीजिए कि मैं एक मैट्रिक्स गुणा या सी # में एक बुलबुले को लागू करना चाहता था। मान लीजिए कि मैं एक सी प्रोग्रामर की तरह सोचता हूं। क्या मैं असफल हो जाऊंगा? –

+0

मैं उचित संकलक निर्देशों का उपयोग कर ओबीजे-सी या सी ++ के भीतर सी कोड संकलित कर सकता हूं। यह मेरा मुद्दा है –

0

सी अनिवार्य है। सी # वस्तु उन्मुख है।

+1

दोनों पारस्परिक रूप से अनन्य नहीं हैं, और वास्तव में मैं कहूंगा कि सी और सी # दोनों अनिवार्य हैं और 'ऑब्जेक्ट उन्मुख हैं। (Http://stackoverflow.com/questions/351733/can-you-write-object-oriented-code-in-c देखें)। और यहां तक ​​कि यदि उनमें से कोई भी नहीं था, तो यह वास्तव में सवाल का जवाब नहीं देता है कि यह एक सुपरसेट है या नहीं! –

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