मैं प्रो एमवीसी 2 पुस्तक पढ़ रहा हूं, और HtmlHelper क्लास के लिए एक एक्सटेंशन विधि बनाने का एक उदाहरण है।क्या कोई बता सकता है कि सी # "Func <T,T>" क्या करता है?
यहाँ कोड उदाहरण:
[Test]
public void Can_Generate_Links_To_Other_Pages()
{
//Arrange: We're going to extend the Html helper class.
//It doesn't matter if the variable we use is null
HtmlHelper html = null;
PagingInfo pagingInfo = PagingInfo(){
CurrentPage = 2,
TotalItems = 28,
ItemsPerPage = 10
};
Func<int, String> pageUrl = i => "Page" + i;
//Act: Here's how it should format the links.
MvcHtmlString result = html.PageLinks(pagingInfo, pageUrl);
//Assert:
result.ToString().ShouldEqual(@"<a href=""Page1"">1</a><a href=""Page2"">2</a><a href=""Page3"">3</a>")
}
संपादित करें:: निकाला बात यह है कि इस सवाल का बिंदु उलझन
public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func<int,string> pageUrl)
{
//Magic here.
}
और यहाँ एक उदाहरण उपयोग है।
सवाल यह है: Func का उपयोग करने का उदाहरण क्यों है? मुझे इसका उपयोग कब करना चाहिए? Func क्या है?
धन्यवाद!
मुख्य रूप से एक प्रतिनिधि है देखेंगे, मैं जानना चाहते हैं कि क्या समारोह PAGEURL = मैं => "पृष्ठ 1" + मैं; लाइन कर रही है –
मुझे समझ में नहीं आता है। 'Func 'का विस्तार विधियों से कोई लेना देना नहीं है। आप क्या पूछ रहे हो? –
BoltClock
क्या आपका मतलब 'पेजलिंक्स' की घोषणा है? पहला पैरामीटर 'यह' है, यानी यह एक विस्तार विधि है। वह पैरामीटर कॉल में 'html' ऑब्जेक्ट से बाध्य हो जाता है। – Pete