public class testclass
{
public class ProductImages : Page
{
protected Repeater rptSmallUrls;
protected Repeater rptBigUrls;
/// <summary>
/// 委托
/// </summary>
/// <param name="url"></param>
delegate void AddUrl(string url); protected void Page_Load(object sender, EventArgs e)
{
int productId = ;
int.TryParse(this.Page.Request.QueryString["ProductId"], out productId); if (!this.Page.IsPostBack)
{
//获取数据
ProductInfo productSimpleInfo = ProductBrowser.GetProductSimpleInfo(productId);
//绑定相册
if (productSimpleInfo != null)
{
this.BindImages(productSimpleInfo);
}
} } private void BindImages(ProductInfo productImageInfo)
{
//加载大图
List<string> bigList = new List<string>();
AddUrl addUrlToList = delegate (string url)//向List中添加Url的匿名方法
{
if (!string.IsNullOrEmpty(url))
{
bigList.Add(url);
}
};
addUrlToList(productImageInfo.ImageUrl1);
addUrlToList(productImageInfo.ImageUrl2);
addUrlToList(productImageInfo.ImageUrl3);
addUrlToList(productImageInfo.ImageUrl4);
addUrlToList(productImageInfo.ImageUrl5);
addUrlToList(productImageInfo.ImageUrl6);
if (productImageInfo.Spread != null && !string.IsNullOrEmpty(productImageInfo.Spread.Images))
{
bigList.AddRange(productImageInfo.Spread.Images.TrimEnd(',').Split(','));
}
this.rptBigUrls.DataSource = bigList;
this.rptBigUrls.DataBind(); //加载小图
List<string> smallList = new List<string>();
bigList.ForEach(u => smallList.Add(u.Replace("/product/images/", "/product/thumbs40/40_").Replace("/pet/images/", "/pet/thumbs40/40_")));
this.rptSmallUrls.DataSource = smallList;
this.rptSmallUrls.DataBind();
}
}
}

实际使用到的delegate的两种用法。

记录以供参考。

一、

//声明

delegate void AddUrl(string url);

//定义

AddUrl addUrlToList = delegate (string url)
{
  if (!string.IsNullOrEmpty(url))
  {
    bigList.Add(url);
  }
};

//调用

addUrlToList(productImageInfo.ImageUrl1);

二、

//匿名调用

bigList.ForEach(u => smallList.Add(u.Replace("/product/images/", "/product/thumbs40/40_").Replace("/pet/images/", "/pet/thumbs40/40_")));

delegate-使用笔记的更多相关文章

  1. n【c#】委托:delegate 学习笔记

    类似于c/c++的指针,只不过c#的委托存储的是某个方法的调用,派生子System.Delegate

  2. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

  3. C# 委托Delegate的使用 笔记

    使用delegate总是一头雾水,记录一下笔记,备忘. 主要用于线程间操作UI上的控件,以便使用.或者是大家统一操作入口使用. using System.Windows.Forms; namespac ...

  4. C#高级编程笔记 Delegate 的粗浅理解 2016年9月 13日

    Delegate [重中之重] 委托 定义一:(参考)http://www.cnblogs.com/zhangchenliang/archive/2012/09/19/2694430.html 完全可 ...

  5. Qt开发中的实用笔记一--xml,Qpainter,Delegate:

    因为开发环境不能联网,开发中用到有用的知识就记在word稳定中,不知不觉就记载了几十页,为避免笔记丢失,现在就一点点忘博客上搬,方便日后回顾! ---------------------------- ...

  6. iOS阶段学习第30天笔记( UIViewController—Delegate(代理) )

    iOS学习(UI)知识点整理 一.UIViewController的介绍 1)概念:UIViewController 即视图控制器,用来管理和控制页面跳转的一个类 ,iOS里面采用了MVC的体系结构, ...

  7. Object C学习笔记16-委托(delegate)

    在.NET中都知道委托(delegate),通俗点的解释就是可以将方法作为一个参数传到另外一个方法中使用. 委托是一种引用方法的类型.一旦为委托分配了方法,委托将与该方法具有完全相同的行为.委托方法的 ...

  8. NET笔记——Delegate

    对于初学者,委托是很容易让人晕的,一是晕它如何起作用,二是晕它有什么用. 最近回过头来又看了下委托,又有些不同的感觉,写之自用. 声明方面,委托可以被声明在类内,也可以与类同级,并且声明时没有方法体: ...

  9. 『重构--改善既有代码的设计』读书笔记----Hide Delegate

    所谓委托关系,就是一个类对于另一个类来说纯粹作为接口转发,即客户通过一个委托类去调用另一个对象.直白的委托关系就是委托类直接返回出目标类给客户调用,这个关系很麻烦,因为委托关系的变动就会影响客户端的代 ...

随机推荐

  1. 建立HttpsConnection

    1建立HttpConnection,这种连接比较简单,但是是不安全的,网上例子比较多,现在主要说说如果建立HttpsConnection,这种连接时通过SSL协议加密,相对更安全,一般使用这种连接传输 ...

  2. (转载)Undefined variable: PHP_SELF的问题解决方法

    (转载)http://blog.sina.com.cn/s/blog_4ab014680100gx43.html 在PHP使用了$PHP_SELF函数时,出现以下错误 Undefined variab ...

  3. eclipse报错 com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 转

    今天eclipse突然报了com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 错误,并且工程文件打不开了,在网上找了一下资料,然后按照方法操作了一遍,好了 ...

  4. Delphi socket() 函数的应用

    socket()系统调用,带有三个参数: 1.参数domain指明通信域,如PF_UNIX(unix域),PF_INET(IPv4), PF_INET6(IPv6)等 2.type指明通信类型,最常用 ...

  5. oracle 创建表空间、创建用户管理该表空间

    /*分为四步 *//*第1步:创建临时表空间  */create temporary tablespace user_temp  tempfile 'D:\oracle\oradata\Oracle9 ...

  6. 深入hibernate的三种状态【转载】

    这篇文章写得很好,举了很多例子. http://www.cnblogs.com/xiaoluo501395377/p/3380270.html

  7. 【机房系统知识小结】微软自带RDLC报表,数据汇总设计

    在做机房系统报表的时候,借鉴 八期崔成龙学长的博客< VB.NET rdlc 报表的使用>,照虎画猫的敲了一遍,但是在“汇总项”中,出现了一点小问题. 具体的设计方法在这里就不做介绍了,请 ...

  8. ELK Packetbeat 部署指南(15th)

    原文链接:http://www.ttlsa.com/elk/elk-packetbeat-deployment-guide/ Packetbeat 是一个实时网络数据包分析工具,与elasticsea ...

  9. BZOJ 1835: [ZJOI2010]base 基站选址 [序列DP 线段树]

    1835: [ZJOI2010]base 基站选址 题目描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立 ...

  10. 【Android - V】之DrawerLayout的使用

    DrawerLayout是Android V4包中的一个布局控件,用来实现一个抽屉样式的布局. DrawerLayout通过设置子视图的layout_gravity来决定子视图停靠在屏幕的哪个边缘外侧 ...