2010-01-24 13 views
13

प्राप्त करें सी #, उदाहरण के अलावा अन्य इस के लिए किसी भी उपयोगी संदर्भ, खोजने के लिए प्रतीत नहीं कर सकते हैं।सी # में वीबी के "मंद" कथन के बराबर क्या है?

तो, सी # में मंद है?

+1

क्या आप पूछ रहे हैं कि वी # नेट के डी के बराबर सी # क्या है? – spender

+0

उस मामले के लिए, दुनिया में क्या 'Dim' VB.NET में खड़ा है? मुझे पता है कि इसका क्या उपयोग किया जाता है, लेकिन मुझे अभी भी पता नहीं है कि इसका क्या मतलब है। –

+0

@ बेन डिम आयाम – PeanutPower

उत्तर

18

वीबी में, Dim (या वैरिएबल प्रकार का, यदि आप कोई निर्दिष्ट नहीं है) एक विशेष प्रकार का एक चर की घोषणा की। आप Dim x as Foo हैं, उस प्रकार Foox कहा जाता है के एक चर की घोषणा की।

Foo x; 
int i; 

तुम भी एक ही चरण में प्रदान कर सकते हैं:

सी # में, बराबर प्रकार चर का नाम लगाकर राज्य के लिए, के रूप में में है

Foo x = new Foo(); 
int i = 6; 

सी # प्रकार निष्कर्ष का समर्थन करता है है, तो आप भी कर सकते हैं:

// Compiler infers type of x and i based on this assignment. 
var x = new Foo(); // x is now of type Foo 
var i = 10;  // i is now of type int 

एक Dim VB में एक इसी प्रकार के बिना समान है सी # में Object के रूप में एक प्रकार की घोषणा करने के लिए:

object o = ...; // An object instance can hold any value or reference type. 
+1

हां, लेकिन var को ज्यादातर LINQ के लिए लाया गया था और यदि आप 'var MyVar = 500; MyVar = "स्ट्रिंग में बदलें"; 'आपको एक त्रुटि मिलेगी .. अन्य भाषाओं में यह प्रतिबंध नहीं है –

+0

अंतिम अंतिम रूप से टाइप किए गए चर का एक उदाहरण है; प्रकार अनुमान अलग है। – jason

+1

@ रोबोटो: सी # काफी हद तक स्थाई रूप से टाइप किया गया है।आप जो भी वर्णन करते हैं वह आप नहीं कर सकते क्योंकि एक चर का प्रकार उत्परिवर्तनीय नहीं है: एक बार जब आप एक प्रकार के रूप में घोषित करते हैं, तो यह वही रहता है। @ जेसन: लागू टाइपिंग बिना किसी अनुमान के हो सकता है। वे बहुत गहराई से जुड़े हुए हैं। अनिवार्य रूप से, टाइप करें अनुमान "दाएं तरफ" पर होता है ताकि संकलक 'i' को किसी विशेष प्रकार से बांध सके। –

1

समान बराबर की तरह

object Obj; 

या किसी अन्य डेटाप्रकार जैसे

int myInt; 
string myString; 

var भी परोक्ष रूप में इस्तेमाल किया जा सकता है आपके द्वारा लिखा गया होगा। दूसरों को स्पष्ट रूप से टाइप किया जाएगा। लिनक्यू प्रश्नों के लिए var पेश किया गया था।

16

यह मानते हुए कि आप VB में Dim मतलब है, सी # का उपयोग करता है या तो var या प्रकार का नाम एक नए प्रकार की घोषणा करने के

string myString = "Hello"; 
// is the same as 
var myString = "Hello"; // type is inferred 

ध्यान दें कि var कीवर्ड एक संस्करण का प्रकार, नहीं है VB में की तरह। यह एक implicitly typed variable है।

0

मंद एक कीवर्ड है जो VB.NET में उपयोग किए जाने वाले चर की घोषणा के लिए उपयोग किया जाता है। मुझे सी # में किसी भी उपयोग के बारे में पता नहीं है। मैं कहूंगा कि अपने (किसी न किसी तरह) बराबर वर कीवर्ड होगा, बशर्ते कि हम वीबी 9 के बारे में बात कर रहे हैं और सी # 3. लेकिन मुझे लगता है कि यह इससे पहले कि हम जानते हैं कि इच्छित सवाल वैसे भी है विवरण के बारे में झगड़े में जाने के लिए बेकार है;)

+0

डाउनवॉटेड; सी # में "मंद" के बराबर नहीं है। वीबी में, मंद कीवर्ड का उपयोग किया जाता है एक चर घोषित करें। सी # में, यह इरादा एक कथन शुरू करने के लिए एक प्रकार का उपयोग करने में निहित है। सी # में विभिन्न कीवर्ड का उपयोग किसी प्रकार के नाम पर किया जा सकता है, लेकिन यह अभी भी एक मजबूत प्रकार है, और इसके लिए यह आवश्यक है कि चर उसी कथन पर प्रारंभ किया गया। चर के लिए उपयोग किया गया प्रकार va को निर्दिष्ट डेटा के प्रकार से अनुमानित है riable। –

+1

आप बिल्कुल सही हैं, केवल एक चीज जो मंद ** को लगभग ** के बराबर बनाती है वह यह है कि इन दोनों भाषाओं में एक चर घोषित करने के लिए उपयोग किया जाता है। हालांकि, वीबी के संस्करण 9 में, विकल्प इनफर चालू करना, आप उन्हें एक समान तरीके से व्यवहार कर सकते हैं। –

0

मैं Learning C# 3.0 सुझाव दे सकते हैं (और बाद में, हो सकता है C# 3.0 in a Nutshell और C# in Depth) सी # जानने के लिए। यह शायद एक अच्छा विचार भाषा बुनियादी बातों को जानने और शुरू करने के लिए के बजाय "का अनुवाद" या सी # करने के लिए VB से "कन्वर्ट" अपने विचारों को (या किसी भी अन्य भाषा, उस बात के लिए) की कोशिश की, "सी # में सोच है।"


संपादित करें: कहा कि; आप उन भाषाओं की तुलना करना चाहते हैं जिन्हें आप सीख रहे हैं, जिन्हें आप पहले से जानते हैं, जब आप साथ जाते हैं, भाषाओं के बीच मतभेदों को सीखने के लिए।मेरी राय में, एक नई भाषा सीखते समय, यह सिद्धांतों और मौलिक मतभेदों को समझने के बारे में अधिक है :)

+1

मैं शुरू करने के मामले में गहराई में सी # की सिफारिश नहीं करता। यह वास्तव में उन लोगों के लिए लक्षित है जिनके पास पहले से ही सी # 1. –

+0

@ स्केट का उचित समझ है: मैं सहमत हूं। मान लीजिए कि मुझे उस पर और स्पष्ट होना चाहिए था। पहला (लर्निंग सी # 3.0) शुरू करने के लिए एक महान किताब थी, कम से कम मैंने ऐसा सोचा था। पीएस: मुझे आपके उत्तर ^^ पर टिप्पणी करने के लिए सम्मानित किया गया है – Leif

7

यह वास्तव में थोड़ा मुश्किल है, क्योंकि Dim कई तरीकों से उपयोग किया जा सकता है। पहला मामला यह है कि यदि आप इसे घोषित करते समय स्पष्ट रूप से चर के प्रकार प्रदान करते हैं।

// Visual Basic 
Dim num as Integer 
// C# 
int num; 

दूसरे मामले यदि आप एक प्रारंभ अभिव्यक्ति का उपयोग, लेकिन स्पष्ट रूप से प्रकार निर्दिष्ट नहीं करते है: इस मामले में, यह सी # घोषणा प्रकार का नाम शामिल है कि मेल खाती है। इस मामले में, वीबी (कम से कम हाल के संस्करण) प्रकार को कम करने के लिए प्रकार अनुमान का उपयोग करते हैं। यह सी # var कीवर्ड से मेल खाती है:

// Visual Basic 
Dim str = "Hello world" 
// C# 
var str = "Hello world" 

अंत में, एक तिहाई मामला है - आप किसी भी प्रकार के दिए बिना और आरंभीकरण अभिव्यक्ति (कम से कम Option Strict साथ बंद कर दिया) प्रदान किए बिना दृश्य मूल चर घोषणा कर सकते हैं। इस मामले में, वीबीएनईटी चर को Object के मान के रूप में घोषित करता है, लेकिन यह आपको ऑब्जेक्ट के किसी भी तरीके का आह्वान करने की अनुमति देता है। यह काफी क्या सी # 4.0 नई dynamic कीवर्ड के साथ करता है के करीब है:

// Visual Basic 
Dim sth 
sth = new Random() 
sth.Next() 

// C# 
dynamic sth; 
sth = new Random(); 
sth.Next(); 

[संपादित करें]
अंत में, विजुअल बेसिक में उपयोग Dim के अंतिम मामले सरणियों घोषित करने के लिए है। सी # में, सरणियों सिर्फ एक और डेटा प्रकार के रूप में माना जाता है, इसलिए घोषणा मैं क्या पूर्णांकों/स्ट्रिंग्स के लिए पहले लिखा था के समान है:

// Visual Basic 
Dim ints(10, 10) as Integer 
// C# - we need to initialize the array if size is specified 
int[,] ints = new int[10, 10]; 
// C# - we can use type inference too 
var ints = new int[10, 10]; 

[/ संपादित करें]

(मैं वास्तव में एक वीबी नहीं कर रहा हूँ विशेषज्ञ, लेकिन मुझे लगता है कि ये तीन संभावित मामले हैं। अगर मैं गलत हूं तो कृपया मुझे सही करें!)

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