2012-12-10 16 views
6

मैं सी # से vb के ब्लॉक को रूपांतरित करने की कोशिश कर रहा हूं।सी # से vb.net convsersion

मैंने रूपांतरण करने के लिए developerfusion.com पर सेवा का उपयोग किया, लेकिन जब मैं इसे विजुअल स्टूडियो में पेस्ट करता हूं, तो यह "कुंजी" कथन के बारे में शिकायत कर रहा है ("किसी ऑब्जेक्ट प्रारंभकर्ता में आरंभ होने वाले फ़ील्ड या प्रॉपर्टी का नाम प्रारंभ होना चाहिए साथ में '।' ")।

मैंने कुछ घंटों के लिए कोड के साथ चारों ओर घूमने की कोशिश कर रहा था, लेकिन मैंने जो कुछ भी किया वह केवल और त्रुटियों का कारण बन गया।

तो मुझे आश्चर्य हुआ कि डेवलपरफ्यूजन में रूपांतरण हमेशा सही था या नहीं।

यहां C# से vb.net है।

मुझे यकीन नहीं है कि "कुंजी" कहां से आ रही है और सोच रहा था कि कोई मुझे प्रबुद्ध कर सकता है या नहीं।

धन्यवाद! इस कनवर्टर हमेशा wor

Dim combinedResults = cars.Select(Function(c) New carTruckCombo() With { _ 
    .ID = c.ID, _ 
     .make = c.make, _ 
     .model = c.model _ 
    }).Union(tracks.Select(Function(t) New carTruckCombo() With { _ 
     .ID = t.ID, _ 
     .make = t.make, _ 
     .model = t.model _ 
    })) 

अतिरिक्त नोट के रूप में,:

से

var combinedResults = 
cars.Select(c=>new carTruckCombo{ID=c.ID,make=c.make,model=c.model}) 
.Union(tracks.Select(t=>new carTruckCombo{ID=t.ID,make=t.make,model=t.model})); 

करने के लिए

Dim combinedResults = cars.[Select](Function(c) New carTruckCombo() With { _ 
Key .ID = c.ID, _ 
Key .make = c.make, _ 
Key .model = c.model _ 
}).Union(tracks.[Select](Function(t) New carTruckCombo() With { _ 
Key .ID = t.ID, _ 
Key .make = t.make, _ 
Key .model = t.model _ 
})) 

उत्तर

7

Key

निकालें इस बजाय करना मेरे लिए बेहतर ked जब भी मैं इसे की जरूरत:

http://converter.telerik.com/

+2

+1 http://converter.telerik.com/ –

+2

के लिंक के लिए +1 बस 'चयन करें' के बजाय 'चयन करें' का उपयोग करें। – sloth

+0

@ डोमिनिककेक्सेल - हाँ, आप सही हैं :) संपादित करें। – Darren

5

सी # में, जब एक गुमनाम प्रकार बनाने, यह आप अपनी गुमनाम प्रकार के सभी गुण का उपयोग कर के लिए एक Equals और GetHashCode कार्यान्वयन उत्पन्न करता है।

वीबीएनईटी कुछ समान करता है, लेकिन इसके लिए आपको अपने अज्ञात प्रकार के गुणों पर Key modifier डालना होगा।

सी # "बस यह करता है" जहां वीबी.नेट आपको परिभाषित करने के लिए लचीलापन देता है कि समानता में कौन सी गुणों का उपयोग किया जाता है। चूंकि सी # सभी गुणों का उपयोग करता है, कनवर्टर आपको सब कुछ पर Key दे रहा है, इसलिए समानता समान कार्य करती है।

ठीक है, तो यह Key संशोधक का बैकस्ट्रीरी है, तो आपके रूपांतरण में क्या गलत है?

कनवर्टर गलत तरीके से लगता है कि आप एक अनाम प्रकार का उपयोग कर रहे हैं, लेकिन आप नहीं हैं। आपका प्रकार carTruckCombo है इसलिए वे Key संशोधक काम नहीं करते हैं। Key संशोधक को हटाने से समस्या ठीक हो जाएगी क्योंकि आपके पास एक अच्छी तरह से परिभाषित कक्षा है जहां आप वहां अपनी समानता लागू कर सकते हैं।

+2

अच्छी व्याख्या। – sloth

+1

यह सबसे अच्छा जवाब है क्योंकि यह वास्तव में रूपांतरण समस्या और भाषा तत्व बताता है जिस पर प्रश्न संबंधित है। – pseudocoder