क्या बेहतर(स्ट्रिंग) पाठक [0] बनाम Convert.ToString (पाठक [0])
var s = (string)reader[0]
या
var s = Convert.ToString(reader[0])
है?
क्या बेहतर(स्ट्रिंग) पाठक [0] बनाम Convert.ToString (पाठक [0])
var s = (string)reader[0]
या
var s = Convert.ToString(reader[0])
है?
मैं कहेंगे reader.GetString(0)
एनईटीएफएक्स 2 की सर्करा रिलीज मैंने बहुत सारे शोध किए और पाया कि
मैंने इसे 3.5 में भी मापा है और पाया है कि यह '(स्ट्रिंग) पाठक [0]' से मापने योग्य रूप से बेहतर प्रदर्शन करता है। – mquander
क्या पाठक के साथ समस्याएं हैं। गेटस्ट्रिंग (0) ब्लॉब मान पढ़ना, उदा। VARCHAR (मैक्स)? कोड की पठनीयता और इरादे पर विचार करने के लिए – Brettski
मुझे लगता है कि होगा reader[0].ToString();
तो पाठक [0] वास्तव में एक स्ट्रिंग, तो (string)reader[0]
है।
यह स्पष्ट और सबसे तेज़ तेज़ है (जब तक कि संकलक कुछ जादुई अनुकूलन नहीं करता है जिसे मैं नहीं जानता)।
क्या
के बारे मेंपाठक [0] .ToString();
var s = (string)reader[0]
आप एक वर्ग डाली अपवाद दे देंगे अगर यह एक स्ट्रिंग के रूप में ढाला नहीं जा सकता है, जबकि
var s = Convert.ToString(reader[0])
इसे और अधिक शान से संभाल लेंगे और आप अशक्त हो जाएगा अगर यह नहीं कर सकते परिवर्तित किया जाना यह पाठक [0] के लिए अधिक प्रकार की ऑब्जेक्ट को भी संभाल देगा क्योंकि अन्य विधि केवल उन स्थानों को अनुमति देगी जहां टाइप को स्ट्रिंग में डाला जा सकता है, जबकि यह कनवर्ट क्लास को किसी भी प्रकार का समर्थन करेगा। जो मैं मानता हूं वह अधिक है। लेकिन नहीं हो सकता है ...
यह तेजी से होता है के बारे में ~ 30% मेरे परीक्षण में तेजी से:
var s = (string)reader[0];
लेकिन यह झटका नहीं होगा जब यह शून्य है:
var s = Convert.ToString(reader[0]);
कैसे reader.GetString(0);
?
// Conveys that you are sure that reader[0] is a string and
// if it's not you probably have bigger problems
// than the resulting exception
var s = (string)reader[0];
// Conveys that you are hoping that reader[0] is convertible to a string
var s = Convert.ToString(reader[0])
तो शायद यह संदर्भ को ध्यान में रखते हुए चुनने का मामला है।
+1, न केवल प्रदर्शन। – rob
मैं
reader[0].ToString();
साथ जाना होगा क्यों कोई भी पठनीयता और रख-रखाव पर विचार किया?
मैं जानता हूँ कि लेखक पूछता है के बारे में:
var s = (string)reader[0]
or
var s = Convert.ToString(reader[0])
लेकिन क्या बारे में:
string s = reader["Fieldname"].ToString();
thats अधिक पठनीय और अधिक सुरक्षित आप का आदान-प्रदान/हटाने/स्तंभ जोड़ने और सूचकांक से बदल रहा है, तो .. यह निश्चित रूप से अधिक मूल्यवान है।
एक लड़के ने कहा कि हार्ड कास्ट 30% तेज है। अच्छी तरह से 1 एमएस का 30% 1,333 एमएस है? निश्चित रूप से पूरे डेटा लाने का 30% नहीं।
इस उत्तर को ध्यान में रखा जाना चाहिए। – jason
पाठक क्यों नहीं [0]। विकल्प के रूप में। ToString()? – Oded
क्या आप "बेहतर" परिभाषित कर सकते हैं? और तेज? और अधिक मजबूत? पढ़ने के लिए आसान है? छोटी स्मृति पदचिह्न? –