2008-10-17 10 views
28

मुझे जावा अच्छी तरह से पता है। कौन सी चेतावनी और संसाधन मुझे दूसरी तरफ (सी #) को जितना संभव हो सके दर्द से पीड़ित करने में मदद करेंगे।मैं जावा से सी # में कैसे स्थानांतरित करूं?

+1

इसके अलावा, इसका विशेष उत्तर नहीं है, लेकिन जेफरी रिचटर द्वारा सीएलआर वाया सी # प्राप्त करें और पढ़ें (कवर से कवर तक)। हम ढांचे के संस्करण 3.5 (एसपी 1) पर हैं, लेकिन सीएलआर अभी भी संस्करण 2.0 है। वह पुस्तक आपको नींव देगी जिस पर बाकी सब कुछ बनाया गया है – Will

+0

मुझे सी # से जावा में संक्रमण मिलता है और इसके विपरीत वास्तव में आसान है। उनके पास कई समानताएं हैं और जावा में आपके द्वारा सीखा जाने वाले अधिकांश प्रोग्रामिंग प्रतिमानों को पूरा किया जाएगा। गहराई में – mmcdole

उत्तर

29

सबसे बड़ी युक्ति: शब्द से .NET naming conventions के साथ जाएं। इस तरह आपको लगातार याद दिलाया जाएगा कि आप किस भाषा में हैं। (मूर्खतापूर्ण लगता है, लेकिन यह वास्तव में सहायक है।) जहां तक ​​संभव हो सके भाषा के मुहावरे को गले लगाओ।

विशेष रूप से आपकी स्थिति में लोगों के लिए विभिन्न पुस्तकें हैं - अमेज़ॅन में "जावा के लिए सी #" की खोज करें और आपको बहुत सारी हिट मिलेंगी। ध्यान से पढ़ने के लायक है यह सुनिश्चित करने के लिए कि आप यह नहीं मानते कि चीजें जावा में सी # में समान होंगी। (उदाहरण के लिए, सी # उदाहरण में चर initializers आधार वर्ग निर्माता शरीर से पहले क्रियान्वित कर रहे हैं; जावा में वे के बाद क्या इस तरह सूक्ष्म बातों को जानने के लिए कुछ समय ले सकते हैं, और यदि आप स्कीम रहे हैं याद करने के लिए आसान कर रहे हैं।।)

यदि आप सी # 3 का उपयोग करने जा रहे हैं, तो मुझे एक पुस्तक मिल जाएगी जो निश्चित रूप से उसमें शामिल होगी - सी # 3 में सबकुछ आपके लिए नया होगा। Gratuitous प्लग: मेरी अपनी पुस्तक (C# in Depth) सी # 2 और 3 को कवर करती है, लेकिन मान लीजिए कि आप पहले से ही सी # 1 जानते हैं। (दूसरे शब्दों में, यह अपने आप पर पर्याप्त नहीं होगा, लेकिन आप इसे "दूसरी" पुस्तक के रूप में चाह सकते हैं।)

+0

सी # किसी ऐसे व्यक्ति के अनुसार अच्छा पढ़ा गया था जो लेखक नहीं है (आईई मुझे!)। हालांकि मुझे यह स्वीकार करना है कि मुझे लगता है कि कवर कला थोड़ी बदसूरत है। –

+5

यह मेरी तस्वीर की तुलना में कम बदसूरत है :) –

9

इस महान लेख को C# from a Java Developer's Perspective पर देखें। इसमें उन चीजों पर कई अंतर्दृष्टि हैं जो न्यूनतम ओवरहेड से बचने के लिए दोनों तरफ किए जा सकते हैं। आप जिस भाषा को जानते हैं उस भाषा में उदाहरण और जिस भाषा को आप सीखना चाहते हैं, वह सीखने की वक्र को थोड़ा सा आसान बनाता है।

0

भाषा वाक्यविन्यास समान होता है, इसलिए मुझे केवल सी # वाक्यविन्यास का एक छोटा संदर्भ पढ़ना चाहिए। एक साधारण पुस्तक (अनुभवी प्रोग्रामर के लिए) या शायद विकिपीडिया (http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp) की तरह पर्याप्त बताएगा।

सबसे बड़ा अंतर यह पुस्तकालय है: Asp.Net वेबसाइटों जावा सर्वलेट से बिल्कुल अलग हैं।

बहुत कुछ न पढ़ें, बस प्रोग्रामिंग शुरू करें!

+1

पुराने और बस्टेड एएसपी.नेट वेब फॉर्म मॉडल का उपयोग न करें। एएसपी.नेट एमवीसी के लिए इसे छोड़ दें। बहुत बेहतर ढांचा। – Will

+0

भाषाएं * बहुत समान थीं, विशेष रूप से जावा 1.4 बनाम सी # 1. इन दिनों वे वास्तव में काफी अलग हैं, और यहां तक ​​कि वे * समान * देखो (जैसे जेनेरिक) वे दुनिया अलग हो सकते हैं। –

+0

दो भाषाओं को समान होने के लिए विश्वास करना दर्द की दुनिया में खुद को खोजने का एक शानदार तरीका है ... इससे आसानी से सूक्ष्म मतभेदों को नजरअंदाज कर सकते हैं जैसे कि आप अपवाद को कैसे उखाड़ फेंकते हैं। –

2

यह पहले से ही मुझे विश्वास है कि गहराई से कवर किया गया है। निम्नलिखित धागे देखें।

मैं इसे बंद नहीं करना चाहते हैं, हालांकि, क्योंकि यह एक 'सही' नकल होने के लिए प्रतीत नहीं होता है, और मैं इस सवाल का जवाब जॉन की तरह।

2
  1. विजुअल स्टूडियो 2008 और IntelliJ विचार कुंजी बाइंडिंग के साथ Resharper स्थापित करें। यदि आप उनका उपयोग करना शुरू करते हैं तो यह आपको नामस्थानों को शामिल करने के लिए प्रेरित करने जैसी चीजें देता है।
  2. एक नई परियोजना शुरू करें और जब आप कुछ है जो ठीक से काम नहीं करता है में चलाने, जावा कोड लिखना शुरू या यह वर्ग आप "सी # में println" गूगल का उपयोग करने की कोशिश कर रहे खोजने में असमर्थ है
  3. लिखें परीक्षण या विवेक जांच के लिए कोड स्निपेट, जैसे आप देखना चाहें, तो == तार (यह होता है)
  4. पता है कि सी # उर्फ ​​डेटा प्रकार (पूर्णांक System.Int32 के लिए एक उपनाम है, सिस्टम के लिए स्ट्रिंग के लिए काम करता है ।स्ट्रिंग) अन्य लोगों के कोड पर
  5. देखो मेरा सुझाव है JP Boodhoos Google code
  6. सी # में एक नौकरी ले लो, वहाँ समर्थन में विशेष रूप से दोनों जावा और सी # की आवश्यकता होती है नौकरियों की बहुत सारी।
  7. अपने पुस्तकालयों को जानें, अधिकांश जावा पुस्तकालयों को पोर्ट किया गया है और अधिकांश समय नाम (Hibernate => NHibernate) या (Xstream => Xstream.Net) जैसा होता है। प्रत्येक लाइब्रेरी का एक स्पष्ट नाम नहीं है, इसलिए बस यहां यादृच्छिक लोगों को देखना शुरू करें। यानी (Rhino.Mocks, HTMLAgilityPack, MBUnit, Rhino.Commons, Castle Project)
  8. उपयोगकर्ता समूह की बैठकों पर जाएं डीएनयूजी (डॉट नेट उपयोगकर्ता समूह) की तलाश करें, वे सहायक होंगे और आपको कुछ अच्छी सलाह मिल सकती है।
0

अपने जावा प्रोग्राम को C# में परिवर्तित करने और अंतर देखने के लिए Sharpen का उपयोग करें।

0

मुझे पता है कि एक अच्छा जवाब पहले ही स्वीकार कर लिया गया है। हालांकि, मैं एक जोड़ना चाहता हूं ...

मुझे लगता है कि एक नई भाषा सीखना आम तौर पर सूक्ष्म वाक्य रचनात्मक मतभेद सीखना शामिल है .... विशेष रूप से जब सी/सी ++/जावा/सी # परिवार।

एक अच्छी मोटी संदर्भ पुस्तक के अलावा मैं C# 3 Pocket Reference from O'Reilly जैसे पॉकेट संदर्भ प्राप्त करने की अनुशंसा करता हूं। यह आपको डिज़ाइन पैटर्न आदि के साथ मदद नहीं करेगा ... लेकिन आप जिस भाषा का उपयोग कर रहे हैं उसके विशिष्ट अंतरों के बारे में बहुत तेज़ प्रदान करेगा।

यहाँ कि साइट से इस पुस्तक के बारे में एक त्वरित blurb है:

सी # 3.0 पॉकेट संदर्भ चित्र और कोड उदाहरण के बहुत समझाने के लिए शामिल हैं:

  • ऐसे लैम्ब्डा के रूप में सी # 3.0 की नई सुविधाओं, अभिव्यक्तियां, गुमनाम प्रकार, स्वचालित गुण, और अधिक
  • सी # वाक्यविन्यास, पूर्वनिर्धारित प्रकार, अभिव्यक्ति, और ऑपरेटरों के सभी पहलू
  • कक्षाएं, structs, प्रतिनिधि ट और घटनाओं, enums, जेनरिक और बाधाओं, अपवाद हैंडलिंग, और iterators
  • मुक्केबाजी, ऑपरेटिंग अधिक भार, प्रतिनिधि सहप्रसरण, विस्तार विधि संकल्प, इंटरफ़ेस reimplementation, नल प्रकार के बारीकियों और ऑपरेटिंग उठाने
  • LINQ, के साथ शुरू दृश्यों के सिद्धांतों, आस्थगित निष्पादन और मानक क्वेरी ऑपरेटर, और वाक्य रचना-सहित कई जेनरेटर, में शामिल होने के लिए, समूह क्वेरी करने के लिए एक पूर्ण संदर्भ के साथ परिष्करण, और क्वेरी निरंतरता
  • , उपभोक्ता लेखन, और कस्टम को दर्शाती विशेषताओं

मैंने जावा को सी # डेवलपर से जाने में मदद करने के लिए इस पुस्तक (अच्छी तरह से मूल) का उपयोग किया। जबकि मैं सीख रहा था, मैंने इसे हमेशा अपने डेस्क से रखा और वास्तव में मदद की।

1

मैंने काम पर सी # का उपयोग करके संक्रमण को आसानी से बनाया है, लेकिन सबसे महत्वपूर्ण चीजों में से एक है .NET API और C# में उपलब्ध कुछ शक्तिशाली तकनीकों से परिचित है।

मैंने .NET लाइब्रेरी को सीखा के बाद मैंने इस पर भरोसा किया कि मैं जितना अधिक इस्तेमाल करता हूं, इसलिए आपके लिए जो चीजें कर सकती हैं, उसके बारे में सीखना बहुत उपयोगी है।उसके बाद, यदि आप डीबी कोड के साथ काम करते हैं, तो LINQ सीखें, और तकनीक लैम्बस, अनाम प्रकार और प्रतिनिधि भी लेने के लिए उपयोगी हैं।

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