स्पष्ट रूप से <%= %>
निर्माण (रेंडर ब्लॉक) का उपयोग करके फ़ॉर्मेटेड आउटपुट लिखना संभव है एएसपी.नेट वेब फॉर्म पृष्ठों और विचारों में।यह एएसपी.NET सुविधा कहां है? <% = स्ट्रिंग प्रारूप, पैराम्स ऑब्जेक्ट [] args%>
<%= "{0} is {1}", "Foo", 42 %>
यह "फू 42 है" प्रस्तुत करेगा। जहां तक मुझे पता है कि एएसपी.नेट पार्सर <%= %>
को HttpResponse.Write(string)
पर कॉल में अनुवाद करता है। स्पष्ट रूप से उपर्युक्त कोड में, कोई भी एक-एक अनुवाद नहीं है, क्योंकि तर्कों की संख्या मेल नहीं खाती है (उपरोक्त अभिव्यक्ति में ,
तर्कों को अलग करता है)।
अब मैंने देखा है कि कक्षा TextWriter
में Write(string, object[])
विधि है।
मैं पार्सर से उत्पादन जाँच कर ली है, और वास्तव में यह TextWriter
की विधि है कि प्रारूपण के लिए एक params object[]
तर्क स्वीकार करता है कहता है:
private void @__Renderform1(System.Web.UI.HtmlTextWriter @__w, System.Web.UI.Control parameterContainer) {
// ...
@__w.Write("{0} is {1}", "Foo", 42);
कि व्यवहार कहीं भी दस्तावेज है?
+1। – Heinzi
@ हिनजी पहली बार मैंने इसे देखा, मैंने सोचा कि यह एक बग होना चाहिए, क्योंकि रीशेर्पर ने इसे चेतावनी के साथ हाइलाइट किया "विधि" __ReSharper_Render 'में 1 पैरामीटर है लेकिन इसे 3 तर्क ("अभिव्यक्ति अपेक्षित" के साथ बुलाया गया है। –
यह सिर्फ क्लासिक एम $ एफटी है।मैं अपने ढेर पर 13 साल तक आवेदन कर रहा हूं और इस तरह की चीजें हमेशा फसल लगती हैं। मुझे कहना है, ओपन-सोर्स समुदाय में, आप लगभग ऐसा कुछ नहीं देखते हैं जो कहीं भी दस्तावेज नहीं है। नेविगेट करना मुश्किल हो सकता है क्योंकि आप कभी नहीं जानते कि कौन सी लाइब्रेरी का उपयोग करना है, लेकिन उन्हें दस्तावेज किया गया है। –