2015-08-29 10 views
10

तकनीकी तौर पर क्या अर्थ और संदर्भ के मतभेदों, की घोषणा कर रहे हैं instantiating, और आरंभ सी # में एक वस्तु बताए?अर्थ

मुझे लगता है कि मुझे असाइन करने का अर्थ पता है लेकिन मेरे पास कोई औपचारिक परिभाषा नहीं है।

एमएसडीएन में, यह कहा जाता है कि "ऑब्जेक्ट बनाने का कार्य तत्काल कहा जाता है"। लेकिन बनाने का अर्थ मुझे अस्पष्ट लगता है। आप

int a; 

a फिर बनाया गया है?

+0

मैंने कभी 'स्पष्टीकरण' नहीं देखा है। लेकिन 'तत्काल' का मतलब किसी ऑब्जेक्ट का उदाहरण बनाना है। 'प्रारंभ करने' का मतलब किसी ऑब्जेक्ट को मूल्य निर्धारित करना है। (जरूरी नहीं कि नया उदाहरण बनाएं)। 'असाइनिंग' स्वयं वर्णनात्मक है। किसी ऑब्जेक्ट को मान असाइन करें। शायद मैं गलत हो सकता हूँ। लेकिन मुझे लगता है कि –

+0

एफवाईआई, int एक आदिम प्रकार है, वस्तु नहीं। – OldProgrammer

+0

क्षमा करें मेरा मतलब घोषित करना है। – user2029077

उत्तर

18

घोषित करना - एक चर का घोषण करना प्रोग्राम में एक नया चर प्रस्तुत करने का मतलब है। आप इसके प्रकार और उसका नाम परिभाषित करते हैं।

int a; //a is declared 

का दृष्टांत - एक वर्ग instantiating वर्ग का एक नया उदाहरण बनाने के लिए मायने रखता है। Source

MyObject x = new MyObject(); //we are making a new instance of the class MyObject 

प्रारंभ - एक चर को प्रारंभ करने के लिए यह एक प्रारंभिक मान देना होता है।

int a; //a is declared 
int a = 0; //a is declared AND initialized to 0 
MyObject x = new MyObject(); //x is declared and initialized with an instance of MyObject 

नियत - एक चर करने के लिए नियत एक मूल्य के साथ चर प्रदान करने के लिए इसका मतलब है।

int a = 0; //we are assigning to a; yes, initializing a variable means you assign it a value, so they do overlap! 
a = 1; //we are assigning to a 
+0

तो संरचनाओं या सरल प्रकारों के लिए इंस्टेंटेशन का उपयोग नहीं किया जाता है? – user2029077

+0

"प्रारंभ करने" का अर्थ "घोषणा के बाद पहली बार असाइन करना" हो सकता है? – user2029077

+1

शब्द का उपयोग structs के लिए किया जाता है, हालांकि मैं ईमानदारी से यकीन नहीं कर रहा हूं क्यों। हालांकि "तत्काल" का उपयोग सरल प्रकारों के लिए नहीं किया जाता है। और हाँ, यह मूल रूप से प्रारंभ करने का अर्थ है। @MinimusHeximus – Zarwan

5

सामान्य में:

घोषित, संकलक कि कुछ मौजूद है बताने के लिए इतना है कि अंतरिक्ष इसके लिए आवंटित किया जा सकता है का मतलब है। यह कुछ परिभाषित करने या प्रारंभ करने से अलग है जिसमें यह जरूरी नहीं है कि चीज़ "मूल्य" क्या है, केवल यह मौजूद है। सी/सी ++ में घोषित करने और परिभाषित करने के बीच एक मजबूत भेद है। सी # में एक भेद का बहुत कम है, हालांकि शर्तों को अभी भी समान रूप से उपयोग किया जा सकता है।

का दृष्टांत शाब्दिक अर्थ है "का एक उदाहरण बनाने के लिए" का मतलब है। प्रोग्रामिंग में, इसका मतलब आमतौर पर किसी ऑब्जेक्ट का उदाहरण बनाना होता है (आमतौर पर "ढेर" पर)। यह अधिकांश भाषाओं में new कीवर्ड के माध्यम से किया जाता है। यानी: new object();। अधिकांश समय आप वस्तु के संदर्भ को भी सहेज लेंगे। यानी: object myObject = new object();

आरंभ करें का प्रारंभिक मूल्य देना है। कुछ भाषाओं में, यदि आप एक चर को प्रारंभ नहीं करते हैं तो इसमें मनमाना (गंदा/कचरा) डेटा होगा। सी # में यह वास्तव में एक अनियमित चर से पढ़ने के लिए एक संकलन-समय त्रुटि है।

नियत बस एक चर के लिए एक मूल्य की भंडारण है।x = 5 वैरिएबल x पर 5 मान असाइन करता है। कुछ भाषाओं में, असाइनमेंट को घोषणा के साथ जोड़ा नहीं जा सकता है, लेकिन सी # में यह हो सकता है: int x = 5;

ध्यान दें कि object myObject = new object(); कथन सभी चारों को जोड़ता है।

  • new object() एक नया object वस्तु को दर्शाता है, यह करने के लिए एक संदर्भ के लौटने।
  • object myObject एक नया object संदर्भ घोषित करता है।
  • = संदर्भ के मान को निर्दिष्ट करके संदर्भ चर प्रारंभ करता है।
+0

क्या हमारे पास शब्द * परिभाषित * भी है? क्या * परिभाषित * मतलब है? – user2029077

+1

@MinimusHeximus Define का अर्थ है मूल्य (या शरीर) देना। हम वास्तव में सी # में "परिभाषित" का उपयोग नहीं करते हैं, लेकिन यह प्रारंभ करने के अर्थ में समान होगा। जब आप कोई विधि लिखते हैं, तो मुझे लगता है कि आप विधि को परिभाषित करने के लिए कॉल कर सकते हैं, हालांकि इसमें सी ++ में विधि की घोषणा करने के साथ कोई विपरीत नहीं है। –

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