इस के सभी प्रकार के संदर्भ के लिए लागू होता है, मूल्य प्रकार as
कीवर्ड का उपयोग नहीं कर सकते हैं के रूप में वे खाली नहीं रह सकती।
//if I know that SomeObject is an instance of SomeClass
SomeClass sc = (SomeClass) someObject;
//if SomeObject *might* be SomeClass
SomeClass sc2 = someObject as SomeClass;
कास्ट वाक्यविन्यास तेज है, लेकिन केवल सफल होने पर, यह असफल होने में धीमा है।
//we need to know what someObject is
SomeClass sc;
SomeOtherClass soc;
//use as to find the right type
if((sc = someObject as SomeClass) != null)
{
//do something with sc
}
else if ((soc = someObject as SomeOtherClass) != null)
{
//do something with soc
}
लेकिन यदि आप पूरी तरह से सुनिश्चित करें कि someObject
की SomeClass
तो कलाकारों का उपयोग एक उदाहरण है कर रहे हैं:
सर्वश्रेष्ठ अभ्यास as
उपयोग करने के लिए जब आप प्रकार पता नहीं है है।
नेट 2 में या जेनरिक ऊपर मतलब है कि आप बहुत मुश्किल से ही एक संदर्भ वर्ग की एक संयुक्त राष्ट्र टाइप उदाहरण है की जरूरत है, तो बाद के कम अक्सर प्रयोग किया जाता है।
यह भी देखें http://stackoverflow.com/questions/496096/casting-vs-using-the-as-keyword-in-the-clr। यह पहला था, लेकिन उसमें एक अच्छा जवाब है। –
आपने दूसरा सबसे पुराना प्रश्न पोस्ट किया है जो कि दूसरे का डुप्लिकेट है (पहला लॉक है)! बधाई हो, मुझे लगता है? – gparyani
जो मजाकिया है क्योंकि यह 3 महीने पहले पोस्ट किया गया था :) लेकिन दूसरे के पास अधिक विस्तृत उत्तर हैं। –