delegates相关内容
private void StringAction(string aString)//要调用的方法{返回;}private void TestDelegateStatement1()//不起作用{var stringAction = new System.Action(StringAction("a string"));//错误:“预期方法"}private void TestDelegateSt
..
我正在使用他们网站上提供的 SDK 将 Dropbox 添加到我的应用程序中.一旦 [[DBSession sharedSession] linkFromController:self]; 与帐户链接,是否有任何方法可以调用某些方法? 基本上我想在应用尝试登录 Dropbox 后调用 [self.tableView reloadData].它甚至不需要区分登录是否成功. 解决方案 D
..
我正在尝试理解代表的概念并且有一个疑问.假设我们定义了一个委托,其返回类型为 int,并接受 2 个 int 类型的参数. 委托声明: 公共委托 int BinaryOp(int x, int y); 现在,假设我们有 2 个方法(加法和乘法),它们都接受 2 个 int 参数并返回一个 int 结果. 代码: static int Add(int x, int y){返回
..
例如: delegate void SomeDelegate();SomeDelegate a = new SomeDelegate( () => Console.WriteLine("A") );SomeDelegate b = new SomeDelegate( () => Console.WriteLine("B") );SomeDelegate c = a + b; 在最后一行,a +
..
我正在尝试为 JSON 加载委托创建一个协议,JSONLoaderDelegate.我的另一个类,称为 JSONLoader,应该将事件分派给它的委托(实现 JSONLoaderDelegate 协议),例如: self?.delegate?.jsonLoaderdidEndWithError(self!, error: JSONLoaderError.LoadError) JSONLoade
..
我刚刚在我的项目中添加了一个照片选择器,一切正常.唯一的事情是它坚持在我设置委托的地方给我以下警告 - 分配给 'id'从不兼容的类型'AddTargetViewController *' 我已经以正常方式在 AddTargetViewController.h 中设置了委托 - @interface AddTargetViewController : UIViewController
..
我是 C# 的新手.只是玩弄它.不是为了真正的目的. void makeOutput(int _param){Console.WriteLine(_param.ToString());}//...//代码中的某处{makeOutput(/* 一些不是 c# 代码的示例,我想要什么 */function : int () { return 0; } );} 是否可以使用真正的匿名函数(意味着返回
..
在 C# 中,我们可以提供参数的默认值,如下所示: void Foo(int i =0) {} 但是,当方法签名是: void FooWithDelegateParam(Func谓词){} 我们如何传递默认参数: void FooWithDelegateParam(Funcpredicate = (string,string x)=> {return y;}){} 但这不会编译.那么,
..
我从 3 天开始就有问题 :( 我想在 CLLocationManagerDelegate 协议中挂钩这个方法: - (void)locationManager:(CLLocationManager *)managerdidUpdateLocations:(NSArray *) 位置 我尝试了一切,但没有成功.我知道如何挂钩类或框架,但我找不到挂钩代表的解决方案.请帮我!谢谢 解决方案
..
我想发出一个返回 Func 的方法.在这个方法中,我必须创建一个委托或 lambda 表达式,它正好为返回类型提供服务. 它应该看起来像这样: //我有一个解析方法,将在我缺失的方法中调用//这是它的签名:对象解析(参数对象[] args);//这就是我使用它的方式:var barFactory = (Func)MissingMethod(typeof(IBar));var bar = b
..
是否可以使用委托作为参数从 C# 调用 IronRuby 方法,以使 yield 可以工作? 以下给了我一个错误数量的参数(1 代表 0) 异常. 动作动作=控制台.WriteLine;var runtime = Ruby.CreateRuntime();var engine = runtime.GetEngine("rb");引擎.执行(@“类 YieldTest定义测试yield '来
..
背景 鉴于“大多数"开发人员都是业务应用程序开发人员,我们最喜欢的编程语言的功能在我们正在使用它们的上下文中使用. 作为 C#/ASP.NET 应用程序开发人员,我倾向于只在处理 UI 事件时使用委托.事实上(这是我缺乏经验的一部分),我什至不知道除了在事件中使用委托的好上下文!这很可怕;但我发现还有其他开发人员在同一条船上. 注意:答案应与 .NET 2.0 相关..NET 3
..
假设如下代码: foreach(ItemCollection 上的项目 i){东西 s = 新的东西();s.EventX += 委托 { ProcessItem(i);};SomethingCollection.Add(s);} 当然,这是错误的,因为所有的代表都指向同一个 Item.替代方案是: foreach(ItemCollection 上的项目 i){项目 tmpItem
..
我想在删除之前检查我的 removeDelegate 方法中是否已经有一个委托.我怎么做? 这是我目前所得到的: 协议 LocationManagerDelegate {函数 locationManagerDidUpdateLocation(oldLocation:CLLocationCoordinate2D,当前位置:CLLocationCoordinate2D)}类位置管理器:NSOb
..
此语句中的“=>"表示什么? del = new SomeDelegate(() => SomeAction()); 上面的声明和这个一样吗? del = new SomeDelegate(this.SomeAction); 谢谢. 解决方案 基本上它是指定一个匿名函数,它不接受调用 SomeAction 的参数.所以是的,它们在功能上是等效的.虽不相等.使用 lambda 更等同
..
为什么在 C# 中使用委托时需要将函数设为 STATIC? 类程序{委托 int Fun (int a, int b);静态无效主要(字符串 [] 参数){乐趣 F1 = 新乐趣(添加);诠释水= F1(2,3);Console.WriteLine(Res);}**静态公共 int Add(int a, int b)**{整数结果;结果 = a + b;返回结果;}} 解决方案 这不是“必要
..
我正在读一本C# 2012 中的C# 结合代表点,没有注意到这一点?代表的目的是不可变的. 合并代表到目前为止你见过的所有代表都只有调用列表中的单个方法.代表可以“组合"通过使用加法运算符.操作的结果是创建一个新的委托,其调用列表是两个操作数的调用列表副本的串联代表.例如,以下代码创建三个委托.第三个委托是由前两个委托创建的. MyDel delA = myInstObj.MyM1;MyD
..
这个帖子有评论如果你需要打电话该方法多次,使用反射一次找到它,然后将其分配给委托,然后调用委托.. 这个 delegate 如何以及为什么工作得更快?谁能举个例子? 我可以称之为 caching 吗?如果是这样,除了这个带委托的缓存方法之外,还有其他方法吗? 添加 我想出了一个使用 delegate 这里. 解决方案 A delegate 只是一个指向函数的指针.如果您
..
我正在尝试将委托附加到不同委托的调用列表.通过这种方式,我正在实现一种对现有事件的钩子.我需要连接在每个被调用的事件之后运行的东西. 只要类型暴露的委托和我传入的动作具有完全相同的签名,以下示例有效.(On1 和 OnAll 事件都使用 Action 委托声明,因此可以正常工作). 代码:我如何将 Action 与事件修饰符公开的现有委托挂钩. 公共静态类 ReflectionExt
..
为什么这不起作用?我没有正确理解委托协方差吗? 公共委托 void MyDelegate(object obj)公共课 MyClass{公共 MyClass(){//错误:带有“void MyDelegate(object)"签名的预期方法_delegate = 我的方法;}私人 MyDelegate _delegate;公共无效我的方法(SomeObject obj){}} 解决方案 正确
..