博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NetCore 委托Func的使用
阅读量:6945 次
发布时间:2019-06-27

本文共 3112 字,大约阅读时间需要 10 分钟。

@{    ViewData["Title"] = "列表";    var getUrl = ViewBag.GetUrl as Func
;}//Request.Query;?rGroupId=1&rTypeId=1&page=3
//
分组一?rGroupId=1&rTypeId=1&page=3
分类五?rGroupId=1&rTypeId=5&page=3
页3?rGroupId=1&rTypeId=1&page=3// public IActionResult List(ListQuery query) {
  query.PageSize = 5;   ListQuery list = _iListManager.Load(query);  ViewBag.GetUrl = new Func
(GetUrlDiy);   return View(list); } //private string GetUrlDiy(string key, string value) //rTypeId,5{ // Dictionary
listDiy = new Dictionary
(); var queryPar = Request.Query; //rGroupId|1,rTypeId|1,page|3 foreach (var item in queryPar) { listDiy[item.Key] = item.Value;//rGroupId|1,rTypeId|1,page|3 } listDiy[key] = value; //rGroupId|1,rTypeId|5,page|3 IEnumerable
arrPar = listDiy.Select(x => $"{x.Key}={x.Value}");//rGroupId=1,rTypeId=5,page=3 string urlPar = string.Join("&", arrPar); //?rGroupId=1&rTypeId=5&page=3 return urlPar;}

 

// 摘要:    //     封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。    //    // 参数:    //   arg:    //     此委托封装的方法的参数。    //    // 类型参数:    //   T:    //     此委托封装的方法的参数类型。    //    //   TResult:    //     此委托封装的方法的返回值类型。    //    // 返回结果:    //     此委托封装的方法的返回值。    [TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]    public delegate TResult Func
(T arg);

in T 代表输入参数                     1

out TResult 表示输出参数          2
再看返回值是 TResult                3
构造方法需要的参数是T               4

1与4,2与3进行对比,你发现了什么?!参数类型一样对吧。         5

Func是一个委托,委托里面可以存方法。

那我们就来建一个与之匹配的方法:以Func
为例:

private bool IsNumberLessThen5(int number)

{return number < 5;} 

Func<int,bool> f1 = IsNUmberLessThen5;

调用:

bool flag= f1(4);

using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expressions;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            Func
f1 = IsNumberLessThen5; bool flag = f1(4); Console.WriteLine(flag); //以下是其它的用法,与IsNumberLessThen5作用相同。只是写法不同而已。 Func
f2 = i => i < 5; Func
f3 = (i) => { return i < 5; }; Func
f4 = delegate(int i) { return i < 5; }; flag = f2(4); Console.WriteLine(flag); flag = f3(4); Console.WriteLine(flag); flag = f4(4); Console.WriteLine(flag); Console.ReadLine(); } private static bool IsNumberLessThen5(int number) { if (number < 5) return true; return false; } }}

 

Func是有返回值的泛型委托Func
表示无参,返回值为int的委托Func
表示传入参数为object, string 返回值为int的委托Func
表示传入参数为object, string 返回值为int的委托Func
表示传入参数为T1,T2,,T3(泛型)返回值为int的委托Func至少0个参数,至多16个参数,根据返回值泛型返回。必须有返回值,不可void

 

转载于:https://www.cnblogs.com/you316/p/8543836.html

你可能感兴趣的文章
Python list 数据类型:列表
查看>>
Android利用Fiddler进行网络数据抓包
查看>>
小程序笔记
查看>>
HDU 6521 Party
查看>>
tkinter内嵌Matplotlib系列(二)之函数曲线绘制
查看>>
using Static library in iOS
查看>>
通过SMTP协议来发送邮件
查看>>
paoding-rose 之 maven配置
查看>>
Prometheus TSDB分析
查看>>
JavaScript系列:函数式编程(开篇)
查看>>
Ural 1018 (树形DP+背包+优化)
查看>>
ZOJ 3626(树形DP+背包+边cost)
查看>>
入驻博客园了
查看>>
Map集合
查看>>
poj 2663 Tri Tiling (状压dp+多米诺骨牌问题+滚动数组反思)
查看>>
Linux 小知识翻译 - 「BitTorrent」
查看>>
spark java api数据分析实战
查看>>
计算机学院大学生程序设计竞赛(2015’12) 1001 The Country List
查看>>
CodeForces 689E Mike and Geometry Problem
查看>>
Netty是什么?
查看>>