Tag: 委托

回调函数

我有一个名为funct的方法,当我在c#中使用isreceive套接字方法时,我希望将其作为我的回调函数。 s.BeginReceive(buffer, 0, buffer.Length, System.Net.Sockets.SocketFlags.None, new AsyncCallback(funct), null); 我得到的错误是: ‘funct’没有重载匹配委托’System.AsyncCallback’ 这可能是什么问题?

如何编写鼠标在TextBox中滚动时发生的事件?

我想在鼠标滚动时更改TextBox的数量。 我有一个Scroll TextBox但是我不想用它。 有没有与此相关的事件? 我应该写一个TextBox事件吗? 如果是,我如何编写鼠标滚动时发生的textBox事件?

回调代表被收集?

一直在忙着用FMOD进行C#游戏开发,我早就遇到了麻烦,我似乎无法绕过。 我想做一些分支音频的东西并将一些游戏动作同步到节拍等等,所以我尝试将同步点添加到我的音乐曲目中。 这是代码: public class Music { private Sound music; private Channel channel; private IntPtr syncPtr; public string File { get; private set; } public Music(string file) { File = file; } public void Load() { music = new Sound(); Audio.System.createSound(File, MODE.HARDWARE, ref music); } public void Unload() { music.release(); } public virtual void Play() […]

将方法存储为类的成员变量

我把它作为我的’KeyEvent’类的成员之一: private delegate void eventmethod(); 和构造函数: public KeyEvent(eventmethod D) { D(); } 我想要做的不是在那里调用D(),我想将该方法(D)存储为KeyEvent的成员变量,所以类似于: stored_method = D(); 然后在另一个KeyEvent方法中,执行以下操作: stored_method(); 我怎样才能做到这一点?

如何在List中存储代理

如何将委托(命名,匿名,lambda)存储在通用列表中? 基本上我正在尝试构建一个委托字典,从中我可以使用密钥访问存储的委托并执行它并按需返回值。 是否可以在C#4中完成? 有什么想法来完成它吗? 注意:异类列表更适合存储任何类型的委托。

需要模拟用户访问网络资源,Asp.Net帐户

我需要访问只有给定域帐户才能访问的网络资源。 我正在使用LogonUser调用,但获得“用户没有必需的特权”exception,因为Web应用程序使用asp.net帐户运行,并且它没有足够的权限来进行此调用。 有办法解决它吗? 更改ASP.Net帐户的身份或权限不是一个选项,因为这是一个运行许多项目的生产计算机。 有没有更好的方法来实现这一目标? 使用Asp.Net 2.0,表单身份validation。 亲切的问候。

Delegate.CreateDelegate()和generics:绑定到目标方法的错误

我在使用reflection和generics创建委托集合时遇到问题。 我正在尝试从Ally方法创建一个委托集合,它们共享一个常用的方法签名。 public class Classy { public string FirstMethod( string id, Func<T1, int, IEnumerable> del ); public string SecondMethod( string id, Func<T1, int, IEnumerable> del ); public string ThirdMethod( string id, Func<T1, int, IEnumerable> del ); // And so on… } 和仿制药烹饪: // This is the Classy’s shared method signature public delegate string classyDelegate( string […]

检查针对委托的MethodInfo

如何确定MethodInfo是否适合不同的委托类型? bool IsMyDelegate(MethodInfo method); 编辑:我给了一个MethodInfo对象,想知道它是否适合委托接口。 除了明显的 private bool IsValidationDelegate(MethodInfo method) { var result = false; var parameters = method.GetParameters(); if (parameters.Length == 2 && parameters[0].ParameterType == typeof(MyObject1) && parameters[1].ParameterType == typeof(MyObject2) && method.ReturnType == typeof(bool)) { result = true; } else { m_Log.Error(“Validator:IsValidationDelegate”, “Method […] is not a ValidationDelegate.”); } return result; }

使用Delegates的局部变量

显然,这似乎不是最佳做法。 有人可以解释为什么它不是最佳实践或如何工作? 任何提供解释的书籍或文章将不胜感激。 //The constructor public Page_Index() { //create a local value string currentValue = “This is the FIRST value”; //use the local variable in a delegate that fires later this.Load += delegate(object sender, EventArgs e) { Response.Write(currentValue); }; //change it again currentValue = “This is the MODIFIED value”; } 输出的值是第二个值“已修改” 。 编译魔术的哪个部分使这个工作? 这跟跟踪堆上的值并稍后再次检索它一样简单吗? [编辑]:鉴于一些评论,改变原来的一些句子……

为什么.NET委托不能被声明为静态?

当我尝试编译以下内容时: public static delegate void MoveDelegate (Actor sender, MoveDirection args); 我收到的是一个错误:“modifer’static’对此项无效。” 我在一个单例中实现它,有一个单独的类调用委托。 问题是,当我在另一个类中使用单例实例来调用委托时(来自标识符,而不是类型),我无论出于何种原因都不能这样做,即使我声明委托是非静态的。 显然,当且仅当委托是静态的时候,我才能直接通过类型引用它。 这背后的原因是什么? 我使用的是MonoDevelop 2.4.2。 更新 使用以下代码尝试其中一个建议后: public void Move(MoveDirection moveDir) { ProcessMove(moveDir); } public void ProcessMove(MoveDirection moveDir) { Teleporter.MoveMethod mm = new Teleporter.MoveMethod(Move); moveDelegate(this, moveDir); } 我收到了一个处理错误,指出MoveMethod必须是一个类型,而不是一个标识符。