delegate-使用笔记
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-使用笔记的更多相关文章
- n【c#】委托:delegate 学习笔记
类似于c/c++的指针,只不过c#的委托存储的是某个方法的调用,派生子System.Delegate
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- C# 委托Delegate的使用 笔记
使用delegate总是一头雾水,记录一下笔记,备忘. 主要用于线程间操作UI上的控件,以便使用.或者是大家统一操作入口使用. using System.Windows.Forms; namespac ...
- C#高级编程笔记 Delegate 的粗浅理解 2016年9月 13日
Delegate [重中之重] 委托 定义一:(参考)http://www.cnblogs.com/zhangchenliang/archive/2012/09/19/2694430.html 完全可 ...
- Qt开发中的实用笔记一--xml,Qpainter,Delegate:
因为开发环境不能联网,开发中用到有用的知识就记在word稳定中,不知不觉就记载了几十页,为避免笔记丢失,现在就一点点忘博客上搬,方便日后回顾! ---------------------------- ...
- iOS阶段学习第30天笔记( UIViewController—Delegate(代理) )
iOS学习(UI)知识点整理 一.UIViewController的介绍 1)概念:UIViewController 即视图控制器,用来管理和控制页面跳转的一个类 ,iOS里面采用了MVC的体系结构, ...
- Object C学习笔记16-委托(delegate)
在.NET中都知道委托(delegate),通俗点的解释就是可以将方法作为一个参数传到另外一个方法中使用. 委托是一种引用方法的类型.一旦为委托分配了方法,委托将与该方法具有完全相同的行为.委托方法的 ...
- NET笔记——Delegate
对于初学者,委托是很容易让人晕的,一是晕它如何起作用,二是晕它有什么用. 最近回过头来又看了下委托,又有些不同的感觉,写之自用. 声明方面,委托可以被声明在类内,也可以与类同级,并且声明时没有方法体: ...
- 『重构--改善既有代码的设计』读书笔记----Hide Delegate
所谓委托关系,就是一个类对于另一个类来说纯粹作为接口转发,即客户通过一个委托类去调用另一个对象.直白的委托关系就是委托类直接返回出目标类给客户调用,这个关系很麻烦,因为委托关系的变动就会影响客户端的代 ...
随机推荐
- 算法-KMP模式匹配算法
1朴素算法:逐个比较 2 主要是解决多余比较的麻烦,通过处理比较字符串是否含有重复的字符的问题.
- 【HDOJ】1811 Rank of Tetris
并查集+拓扑排序.使用并查集解决a = b的情况. #include <iostream> #include <cstdio> #include <cstring> ...
- 深入浅出Node.js (9) - 玩转进程
9.1 服务模型的变迁 9.1.1 石器时代:同步 9.1.2 青铜时代:复制进程 9.1.3 白银时代:多线程 9.1.4 黄金时代:事件驱动 9.2 多进程架构 9.2.1 创建子进程 9.2.2 ...
- 根据SimpleScheduleBuilder配置不同的SimpleTrigger触发器
Job代码: [java] view plaincopy package cn.zto.job; import java.text.SimpleDateFormat; import java.ut ...
- WIA设备批量扫描
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 高效的TCP消息发送组件
目前的.net 架构下缺乏高效的TCP消息发送组件,而这种组件是构建高性能分布式应用所必需的.为此我结合多年的底层开发经验开发了一个.net 下的高效TCP消息发送组件.这个组件在异步发送时可以达到每 ...
- Android定义的路径全局变量
Android定义的路径全局变量 ifeq (,$(strip $(OUT_DIR))) OUT_DIR := $(TOPDIR)out endif DEBUG_OUT_DIR := $(OUT_DI ...
- linux平台MongoDB数据库安装
跟Ruiy哥一起玩转吧; <一,初始化玩转MongoDB> 1,关闭SElinux(Ruiy哥根据经验知红帽的SElinux架设就是个错误,还记得不管啥结构首先要关闭的就是它); 2,设置 ...
- Corn Fields - POJ 3254(状态压缩)
题目大意:有一个M*N的牧场,G(i, j) = 1表示这块地营养丰富,可以喂养牛,等于0表示贫瘠,不能喂养牛,所有的牛都讨厌与别的牛相邻,求有多少种放置牛的方式. 分析:算是炮兵那个题的弱化版吧,先 ...
- centos7 mysql 5.6.30 默认配置文件
默认配置 vim /etc/my.cnf.rpmsave mysql Ver 14.14 Distrib 5.6.30, for linux-glibc2.5 (x86_64) using E ...