2010-12-03 17 views
10

सी # इसे कैसे संकलित करेगा?क्या सी # समर्थन करता है यदि बिना ब्रेसिज़ के कोडब्लॉक्स?

 if (info == 8) 
      info = 4; 
     otherStuff(); 

क्या इसमें कोडब्लॉक में बाद की रेखाएं शामिल होंगी?

 if (info == 8) 
     { 
      info = 4; 
      otherStuff(); 
     } 

या यह केवल अगली पंक्ति ले जाएगा?

 if (info == 8) 
     { 
      info = 4; 
     } 
     otherStuff(); 

उत्तर

29

हाँ, यह इसका समर्थन करता है - लेकिन यह अगले बयान लेता है, अगले लाइन नहीं। उदाहरण के लिए:

int a = 0; 
int b = 0; 
if (someCondition) a = 1; b = 1; 
int c = 2; 

के बराबर है:

int a = 0; 
int b = 0; 
if (someCondition) 
{ 
    a = 1; 
} 
b = 1; 
int c = 2; 

निजी तौर पर मैं हमेशा if बयान के शव के चारों ओर ब्रेसिज़, और सबसे कोडिंग सम्मेलनों मैं का सामना करना पड़ा एक ही तरीका अपनाने में शामिल हैं।

+6

सर्वोत्तम उत्तर: स्पष्टीकरण, कोड स्निपेट, और गॉथस दोनों शामिल हैं! कोडिंग मानकों के लिए – mlibby

+1

+1! –

3

यह सी/सी ++ और जावा की तरह काम करता है। Curlies के बिना, यह केवल अगले बयान शामिल है।

+0

के रूप में ही होगा आपको लगता है कि होगा कि ब्रेसिज़ के साथ, यह भी केवल अगले बयान चलाता है? –

0

बेशक "अगर" केवल "जानकारी = 4" के लिए काम करता है।

0

यह केवल अगली पंक्ति लेता है, इसलिए आपका उदाहरण दूसरे संभावित परिणाम उदाहरण के लिए संकलित होगा।

1

हाँ, यह समर्थन करता है ब्रेसिज़ के बिना codeblocks, केवल के बाद पहले बयान करता है, तो अगर ब्लॉक में शामिल किया जाएगा, तो अपने दूसरे उदाहरण की तरह

0

सी # में, यदि कथन ब्रैकेट के आधार पर आदेश चलाते हैं। यदि कोई ब्रैकेट नहीं दिया जाता है, तो यह कथन सत्य होने पर अगला आदेश चलाता है और उसके बाद कमांड चलाता है। अगर हालत झूठी है, बस अगले आदेश

पर जारी है इसलिए

if(true) 
    method1(); 
method2(); 

if(true) 
{ 
    method1(); 
} 
method2(); 
संबंधित मुद्दे