हां, वे अलग हैं। var मूल डेटाटाइप और एक डेटाटाइप-चेक को हटा देता है, इसलिए यह अधिक खतरनाक है।
प्रकार-जांच
एक सामान्य चर परिभाषा प्रारंभिक काम पर एक डेटाप्रकार की जांच भी शामिल है।
T a = init; // type-checked
a = b; // type-checked
a = c; // type-checked
यह है जब आप var
var a = init; // NOT type-checked
a = b; // type-checked
a = c; // type-checked
का उपयोग याद आ रही है ये संकलन समय परीक्षण गोंद जो बड़े कार्यक्रमों को एक साथ बांधता है। उन्हें हटाने मूर्ख है।
दुर्घटना में परिवर्तन
एक सामान्य चर परिभाषा एक तय प्रकार है - यह गलती से नहीं बदला जा सकता।
TOrig a = init(e); // datatype fixed (as intended)
जब आप प्रारंभिक डेटाटाइप हटाते हैं, तो आप चर के प्रकार को गलती से बदलने की अनुमति दे रहे हैं। प्रारंभिक अभिव्यक्ति में कोई भी परिवर्तन चर के डेटाटाइप को बदल सकता है।
var a = init(e); // datatype changes with init and e
समय के साथ, के रूप में सॉफ्टवेयर संपादित किया जाता है, डेटाप्रकार गलती से बदला जा सकता है।
यह पहले से ही हो सकता है, और आप नहीं बता सकते हैं।
उदाहरण:
public double MaxValue = 1.2;
... meanwhile, in another source file ...
var x = MaxValue - 1;
var y = IsFull(x);
दोनों x और y के डेटाटाइप्स गलती से संपादन MAXVALUE से बदल रहा जा सकता है।
प्रश्न: क्या यह पहले से ही हुआ है?
सारांश
var
का उपयोग करते हुए एक अनियंत्रित चलती भाग में स्थानीय चर के डेटाप्रकार बदल जाता है।
मशीन के जितने अधिक चलने वाले हिस्सों में ब्रेक करना अधिक संभावना है।
स्पष्ट डेटाटाइप बग को रोकता है।
संभावित डुप्लिकेट [var कीवर्ड का बिंदु क्या है?] (Http://stackoverflow.com/questions/209199/whats-the-point-of-the-var-keyword) –
भी एक डुप्ली: http : //stackoverflow.com/questions/41479/use-of-var-keyword-in-c –