c# - StringBuilder के बजाय TagBuilder का उपयोग क्यों करें?




asp.net-mvc extension-methods (4)

वे एक ही बात पैदा नहीं कर रहे हैं ??

ठीक है, यकीन है, लेकिन यह एक निवारक नहीं होना चाहिए, यह होना चाहिए? एक वर्ग को दूसरे की तुलना में कुछ अधिक विशिष्ट के लिए डिज़ाइन किया गया है, इसलिए यह अधिक स्तर की सुविधा प्रदान करता है।

मैं पूछ सकता था: क्यों एक StringBuilder उपयोग करें? List<char> क्यों नहीं? क्या मैं एक ही चीज़ उत्पन्न नहीं कर सकता?

एक कदम आगे बढ़ते हुए: एक List<char> भी क्यों List<char> ? क्यों नहीं एक char[] , आकार बदलने / जोड़तोड़ मैं अपने आप को नियंत्रित कर सकते हैं? मैं अभी भी पूरी तरह से एक char[] से बना सकता हूं।

वास्तव में, मुझे वास्तव में एक char* और एक int (लंबाई के लिए) की आवश्यकता है। सही?

मेरा कहना सिर्फ इतना है कि यदि कोई वर्ग विशेष कार्यक्षमता के लिए उपलब्ध है जिसे आप उपयोग कर सकते हैं, तो इसका मतलब यह है कि यदि आप मुझसे पूछते हैं तो इसका उपयोग करना संभव है।

html बिल्डर क्लास में टेबल बनाने या HtmlTable का उपयोग करने के लिए टैग बिल्डर और स्ट्रिंग बिल्डर का उपयोग करने में क्या अंतर है?

वे एक ही बात पैदा नहीं कर रहे हैं ??


एक बिंदु यह है कि अन्य उत्तर अब तक छूट गए हैं। यदि आप एक एक्सटेंशन विधि से TagBuilder वापस करते हैं तो आप अपने दृश्य में विशेषताएँ जोड़ना जारी रख सकते हैं। मान लीजिए कि आप एक Html सहायक से एक तालिका लौटा रहे हैं और आप एक वर्ग विशेषता जोड़ना चाहते हैं। यदि आप StringBuilder का उपयोग कर रहे हैं, तो आपको कक्षा को एक पैरामीटर के रूप में पारित करने की आवश्यकता है।

public static string Table(...., string @class)
{
    ...
    sb.AppendFormat("class='{0}", @class);
    ...
}

// In the view
<%: Html.Table(someParams, "fancy") %>

लेकिन एक HTML टैग में एक वर्ग विशेषता जोड़ना एक तालिका बनाने वाली विस्तार पद्धति की चिंता नहीं है ! यदि हम HTML उत्पन्न करने के लिए सिमेंटिक मॉडल (TagBuilder) पर जाते हैं, तो हम तालिका विधि के बाहर वर्ग विशेषता जोड़ सकते हैं।

public static TagBuilder Table(....)
{
    ...
    return tag;
}

// In the view
<%: Html.Table(someParams).AddCssClass("fancy") %>

TagBuilder के अलावा, आप FubuMVC की HtmlTags लाइब्रेरी की जाँच कर सकते हैं। यह HTML बनाने के लिए एक बेहतर मॉडल है। मेरे पास ब्लॉग पर कुछ और विवरण हैं


यदि आप StringBuilder का उपयोग कर रहे हैं तो मूल्यों की HTML एन्कोडिंग करना न भूलें। मुझे उम्मीद है कि TagBuilder यह स्वचालित रूप से करती है।


यह सिर्फ सुविधा है। इस ट्यूटोरियल से :

आपको वास्तव में TagBuilder वर्ग का उपयोग करने की आवश्यकता नहीं है। आप इसके बजाय एक StringBuilder वर्ग का उपयोग कर सकते हैं। हालाँकि, TagBuilder वर्ग आपके जीवन को थोड़ा आसान बनाता है।

TagBuilder पर विधियों को देखें, और इस बारे में सोचें कि क्या वे आपको मूल्य देते हैं। क्या आप StringBuilder हर बार खुद से वही काम करना चाहेंगे? वहाँ भागने कि यह तुम्हारे लिए है? विशेषता विलय, आदि? क्या परिणामस्वरूप कोड को पढ़ना आसान है, जिससे यह स्पष्ट हो जाता है कि आप कुछ मनमाने स्ट्रिंग के बजाय टैग बना रहे हैं?





tagbuilder