वे काफी समान नहीं होते हैं - कम से कम नहीं सामान्य स्थिति में। एक ऑब्जेक्ट प्रारंभकर्ता का उपयोग कर कोड इस के करीब है:
Position tmp = new Position();
tmp.x = 3;
tmp.y = 4;
Position position1 = tmp;
दूसरे शब्दों में, चर करने के लिए काम केवल के बाद गुण निर्धारित किया गया है होता है। अब उस मामले में जहां आप एक नया स्थानीय चर घोषित कर रहे हैं, जो वास्तव में कोई फर्क नहीं पड़ता है, और संकलक आपके पहले रूप में अनुकूलित हो सकता है। लेकिन तार्किक रूप से, इससे कोई फर्क नहीं पड़ता। पर विचार करें:
Position p1 = new Position { x = 10, y = 20 };
p1 = new Position { x = p1.y, y = p1.x };
हैं कि p1
पहले लिए काम किया है, आप p1.x
और p1.y
दोनों के लिए 0 को रखना होगा। जबकि यह वास्तव में बराबर है:
Position tmp = new Position();
tmp.x = 10;
tmp.y = 20;
Position p1 = tmp;
tmp = new Position();
tmp.x = p1.y; // 20
tmp.y = p1.x; // 10
p1 = tmp;
संपादित करें: मुझे अभी एहसास हुआ है कि आप कक्षा के बजाय एक संरचना का उपयोग कर रहे हैं।इससे कुछ सूक्ष्म मतभेद हो सकते हैं ... लेकिन आप लगभग निश्चित रूप से एक म्यूटेबल स्ट्रक्चर का उपयोग नहीं करना चाहिए :)
स्रोत
2010-10-27 15:13:35
उसमें बहुत सच्चाई। मेरा जवाब पोस्ट किया ... उसका जवाब देखा, इसे अपने जवाब को इंगित करने के लिए संपादित किया। –
जॉन स्कीट इस साइट पर हर प्रश्न का उत्तर देने लगता है :) मैं अपनी नई पुस्तक पढ़ने के लिए इंतजार नहीं कर सकता (अगर यह वास्तव में रिलीज़ हो जाता है) – Bryan