delegate

C# Action 委托

时光毁灭记忆、已成空白 提交于 2020-02-22 17:28:36
本文转自: https://www.cnblogs.com/dotnet261010/p/10108791.html 1、什么是Action泛型委托 Action<T>是.NET Framework内置的泛型委托,可以使用Action<T>委托以参数形式传递方法,而不用显示声明自定义的委托。封装的方法必须与此委托定义的方法签名相对应。也就是说,封装的方法必须具有一个通过值传递给它的参数,并且不能有返回值。 2、Action委托定义 查看Action的定义: using System.Runtime.CompilerServices; namespace System { // // 摘要: // 封装一个方法,该方法不具有参数且不返回值。 [TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")] public delegate void Action(); } 你会发现,Action其实就是没有返回值的delegate。 3、示例 Action委托至少0个参数,至多16个参数,无返回值。 Action 表示无参,无返回值的委托。 Action<int,string> 表示有传入参数int,string无返回值的委托。 Action<int

ios - tableView

隐身守侯 提交于 2020-02-21 23:53:20
有关于UIAlertView,警告框控件 示例: 1 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"用户未登录" 2 message:@"请登录后查看消费统计信息" 3 delegate:self 4 cancelButtonTitle:@"确定" 5 otherButtonTitles:nil]; 参数含义:initWithTitle:初始化标题      message:显示通知的内容      delegate:委托对象      cancelButtonTitle:取消按钮标题      otherButtonTitles:其他按钮标题 来源: https://www.cnblogs.com/chupeng/p/3956266.html

设计模式八: 委派(Delegate)

有些话、适合烂在心里 提交于 2020-02-14 23:24:26
简介 委派模式不属于GOF23种设计模式, 主要角色有三种: 抽象任务角色, 委派者角色, 具体任务角色. 实现层面上, 定义一个抽象接口, 它有若干实现类, 他们真正执行业务方法, 这些子类是具体任务角色; 定义委派者角色也实现该接口, 但它负责在各个具体角色实例之间做出决策, 由它判断并调用具体实现的方法. 委派模式对外隐藏了具体实现, 仅将委派者角色暴露给外部, 如Spring的DispatcherServlet. 意图 定义抽象接口的一个实现类, 他负责判断和调用哪个实现类的实例。 类图 实现 一. 定义抽象任务角色接口 /** * 抽象任务角色 */ public interface Task { void doTask(); } 二. 具体任务角色, 实现上面的接口, 这里定义两个实现类 /** * 具体实现类A */ public class ConcreteTaskA implements Task { public void doTask() { System.out.println("执行 , 由A实现"); } } /** * 具体实现类B */ public class ConcreteTaskB implements Task { public void doTask() { System.out.println("执行 , 由B实现"); } } 三.

ios面试题目(一)

只愿长相守 提交于 2020-02-12 02:23:40
1.多线程在实际现实中有哪些应用?(网络操作和大量图片处理不算) 通常耗时的操作都会放在子线程里处理,然后再回到主线程来显示。下面举几个例子: 我们要从数据库提取数据还要将数据分组后显示,那么就会开个子线程来处理,处理完成后才去刷新UI显示。 拍照后,会在子线程处理图片,完成后才回到主线程来显示图片。拍照出来的图片太大了,因此要做处理。 音频、视频处理会在子线程来操作 文件较大时,文件操作会在子线程中处理 做客户端与服务端数据同步时,会在后台闲时自动同步 2、如果app比较大,怎么样减少app的大小? 参考答案: 将build setting中的Optimization Level设置为Fastest, Smallest [-Os],在发布模式下,默认就是这样设置的 将build setting 中的Strip Debug Symbols During Copy设置为YES,在发布模式下,默认就是这样设置的 资源文件查找出所有未使用的,去掉这些永远不会使用的资源文件 对嵌入App的音频进行压缩处理 3、你在迭代开发中是怎么处理版本兼容问题? 参考答案: 版本迭代一定要注意兼容老版本,比如新增了字段或者去掉了某些不再使用的字段,不能引起应用闪退。我们这里只谈程序代码兼容新老版本问题,不考虑业务。因为业务是要求后台来兼容的,通常接口会有版本号控制,用于兼容不同版本的客户端。

iOS面试知识点

旧时模样 提交于 2020-02-12 01:19:36
1 iOS基础 1.1 父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝是指针拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复制,产生一个新的指向这个对象的指针,那么就是有两个指针指向同一个对象,这个对象销毁后两个指针都应该置空。深拷贝是对一个对象进行拷贝,相当于对对象进行复制,产生一个新的对象,那么就有两个指针分别指向两个对象。当一个对象改变或者被销毁后拷贝出来的新的对象不受影响。 实现深拷贝需要实现NSCoying协议,实现- (id)copyWithZone:(NSZone *)zone 方法。当对一个property属性含有copy修饰符的时候,在进行赋值操作的时候实际上就是调用这个方法。 父类实现深拷贝之后,子类只要重写copyWithZone方法,在方法内部调用父类的copyWithZone方法,之后实现自己的属性的处理 父类没有实现深拷贝,子类除了需要对自己的属性进行处理,还要对父类的属性进行处理。 1.2 KVO,NSNotification,delegate及block区别 KVO就是cocoa框架实现的观察者模式,一般同KVC搭配使用,通过KVO可以监测一个值的变化,比如View的高度变化。是一对多的关系,一个值的变化会通知所有的观察者。 NSNotification是通知

IOS面试题<转>

妖精的绣舞 提交于 2020-02-12 00:34:11
前言 写这篇文章的目的是因为前两天同学想应聘iOS开发,从网上找了iOS面试题和答案让我帮忙看看。我扫了一眼,倒吸了一口冷气,仔细一看,气的发抖。整篇题目30多个没有一个答案是对的,总结这篇面试题的作者对iOS机制根本就是一知半解就敢发到网上,不管有心还是无心都是坑害新人。所以在这里总结一下这几年面试别人和被别人面试遇到的一些我认为比较好的基础题目分享给大家,进阶题目在后续补充。 我的理解如果有错漏请一定指出,非常感谢! 从12年开始做面试官到现在已经三个年头了,这期面过很多形形色色的开发,有腾讯的、有百度的、有小公司的、有做外包的,还有完全没有代码能力来做管理的。给我的感觉是百度出品的技术能力最好,基础知识、技术细节掌握的非常的扎实并且自信。腾讯出品技术细节上也非常厉害,平均来说比百度差一些,但是解决问题的能力非常强,思维很活跃大局观好。小公司、外包公司的同学技术细节、基础知识要差一些。我个人是非常反对以出身论英雄BAT出品就一定比其他公司的优秀,只能说BAT提供的技术氛围更好,你可以跟更多优秀的人共事,相比小公司技术进步更容易些。 这期间我也面了很多互联网公司,腾讯、百度、阿里、快播还有其他很多中小型公司,给我的感觉是中国整体的互联网面试官的态度非常糟糕,面试官经常性习惯性的迟到,理由有开会啦、在吃饭啦,最离谱的是没有任何理由就让你在那里等

李洪强经典面试题32

笑着哭i 提交于 2020-02-12 00:31:18
李洪强IOS开发之-iOS经典面试题 写这篇文章的目的是因为前两天同学想应聘iOS开发,从网上找了iOS面试题和答案让我帮忙看看。我扫了一眼,倒吸了一口冷气,仔细一看,气的发抖。整篇题目30多个没有一个答案是对的,总结这篇面试题的作者对iOS机制根本就是一知半解就敢发到网上,不管有心还是无心都是坑害新人。所以在这里总结一下这几年面试别人和被别人面试遇到的一些我认为比较好的基础题目分享给大家,进阶题目在后续补充。 我的理解如果有错漏请一定指出,非常感谢! 从12年开始做面试官到现在已经三个年头了,这期面过很多形形色色的开发,有腾讯的、有百度的、有小公司的、有做外包的,还有完全没有代码能力来做管理的。给我的感觉是百度出品的技术能力最好,基础知识、技术细节掌握的非常的扎实并且自信。腾讯出品技术细节上也非常厉害,平均来说比百度差一些,但是解决问题的能力非常强,思维很活跃大局观好。小公司、外包公司的同学技术细节、基础知识要差一些。我个人是非常反对以出身论英雄BAT出品就一定比其他公司的优秀,只能说BAT提供的技术氛围更好,你可以跟更多优秀的人共事,相比小公司技术进步更容易些。 这期间我也面了很多互联网公司,腾讯、百度、阿里、快播还有其他很多中小型公司,给我的感觉是中国整体的互联网面试官的态度非常糟糕,面试官经常性习惯性的迟到,理由有开会啦、在吃饭啦,最离谱的是没有任何理由就让你在那里等

iOS经典面试题

▼魔方 西西 提交于 2020-02-12 00:26:39
转自:http://www.cnblogs.com/SharkBin/p/4618388.html 前言 写这篇文章的目的是因为前两天同学想应聘iOS开发,从网上找了iOS面试题和答案让我帮忙看看。我扫了一眼,倒吸了一口冷气,仔细一看,气的发 抖。整篇题目30多个没有一个答案是对的,总结这篇面试题的作者对iOS机制根本就是一知半解就敢发到网上,不管有心还是无心都是坑害新人。所以在这里总 结一下这几年面试别人和被别人面试遇到的一些我认为比较好的基础题目分享给大家,进阶题目在后续补充。 我的理解如果有错漏请一定指出,非常感谢! 从12年开始做面试官到现在已经三个年头了,这期面过很多形形色色的开发,有腾讯的、有百度的、有小公司的、有做外包的,还有完全没有代码能力来做 管理的。给我的感觉是百度出品的技术能力最好,基础知识、技术细节掌握的非常的扎实并且自信。腾讯出品技术细节上也非常厉害,平均来说比百度差一些,但是 解决问题的能力非常强,思维很活跃大局观好。小公司、外包公司的同学技术细节、基础知识要差一些。我个人是非常反对以出身论英雄BAT出品就一定比其他公 司的优秀,只能说BAT提供的技术氛围更好,你可以跟更多优秀的人共事,相比小公司技术进步更容易些。 这期间我也面了很多互联网公司,腾讯、百度、阿里、快播还有其他很多中小型公司,给我的感觉是中国整体的互联网面试官的态度非常糟糕,面试官经常性

委托(作用:解耦),lambda的演化

霸气de小男生 提交于 2020-02-09 04:15:02
1.了解委托   MyDelegate类代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MyDelegate { /// <summary> /// 委托可以定义在类外面 /// </summary> public delegate void OutNoReturnNoPara(); public delegate void OutNoReturnWithPara(int x, int y); class DelegateClass { /// <summary> /// 1.声明委托,委托的参数与函数的参数必须一致 /// </summary> public delegate void NoReturnNoPara(); public delegate void NoReturnWithPara(int x, int y); public delegate string NoPara(); public delegate DateTime WithPara(string name,int size); public static void Show()/

clr via c# delegate

做~自己de王妃 提交于 2020-02-08 22:18:03
1,委托列子 internal delegate void Feedback(int value); class DelegateRef { public static void StaticDelegateDeomo() { Console.WriteLine("---------------static delegate Demo ------------"); Counter(1, 3, null); Counter(1, 3, FeedBackToConsole); Counter(1, 3, FeedBackToMsgBox); Console.WriteLine(); } public static void InstanceDelegateDemo() { Console.WriteLine("----------------Instance Delegate Demo ---------"); DelegateRef p = new DelegateRef(); Counter(1, 3, p.FeedBackToFile); Console.WriteLine(); } public static void ChainDelegateDemo1(DelegateRef p) { Console.WriteLine("----------------Chain