Tag: 委托

c#将参数传递给另一种方法

我正在尝试定义一个用于绘制图形的辅助类,我被告知使用Zip方法将数组X和Y的每个元素传递给另一个方法,但它没有很好地解决,可以任何专家点我做错了什么? 我找不到使用谷歌的任何类似情况。 或者只是我过于富有想象力,这种方式根本无法解决? 我已经看到了使用Zip方法计算x,y点对的示例,但没有作为参数传入。 情况:我的程序有2个函数和1个委托,第一个叫做PlotXYAppend的函数用来调用委托PlotXYDelegate然后传入方法Points.addXY进行绘图,我之所以使用chart.Invoke这里是针对线程的安全理由。 但我遇到的问题是委托或plotxyappend一次只取一对点,所以我想出了一个方法,即创建另一个名为PlotXYPass的函数,将一对XY点传递给plotxyappend来获取它工作,但我认为有一些我无法解决的问题,知识分子告诉我他们不喜欢我放在这个function中的参数。 我非常感谢任何帮助。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms.DataVisualization.Charting; namespace LastTrial { public class PlotHelper { double[] X = { 1, 2, 3, 4, 5, 6 }; double[] Y = { 1, 2, 3, 4, 5, 6 }; Chart chart;// declare chart as chart type Series dataSeries;// […]

为什么’Func ‘编译’Func ,其中TGeneric:IBase’没有?

为什么下面的集团错了? public interface IBase { } public class ClassX : IBase { } public class ClassY { public static ClassX FunctionReturnX() { return new ClassX(); } } public class ClassZ where TGeneric : IBase { Func funcInterface = ClassY.FunctionReturnX; //Right Func funcGeneric = ClassY.FunctionReturnX; //Wrong }

代表与BackgroundWorker的差异?

任何人都可以解释委托和BackgroundWorker之间的区别吗?在哪种情况下,Backgroundworker比Delegate更有效?因为我们有异步委托,所以需要使用BackGroungWorker。

如何在状态模式代码中传递中断的本机事件处理程序

我转向我的netmf项目的状态模式。 基于此的东西: http : //www.dofactory.com/Patterns/PatternState.aspx#_self2 我有一个旋转编码器旋钮,在每种状态下都会有不同的作用。 我一直在试图绕过这个,并且无法在我的头上做任何工作。 我不知道在哪里以及如何将中断处理程序注入每个状态以及如何调用中断处理程序的开关。 没有状态模式,代码看起来像: RotaryEncoder RE = new RotaryEncoder(pin1, pin2);//create new instance of knob RE.OnRotationEvent += OnRotationEventHandler;//subscribe to an event handler. //do other things … … static void OnRotationEventHandler(uint data1, uint data2, DateTime time) { //do something } 那么,正确的编码方式是什么,为每个州都有单独的“OnRotationEventHandlers”? 它是上下文的一部分吗? 抽象基类的一部分? 谢谢您的帮助!

使用委托和事件从另一个表单更新表单

我一直忘记这是怎么做的.. 我想从Form2更新主窗体上的UI而不创建窗体的实例。 我记得使用委托/事件并可能以某种方式传递第一个表单的实例,但完全是空白。 帮助我,谢谢。 从Form2向Form1上的listBox1添加一些东西。

将事件从asp.net用户控件公开到容器Web表单页面

如何实际将asp.net usercontrol [ascx文件]中的抽象事件暴露给容器webforms页面。 这是我的情景, 我创建了一个webforms usercontrol一个ascx文件,并将一个带有validation器的数据绑定复选框列表进行validation(我知道这可以完成webforms本身为什么用户控制你问,但这是一个场景) 现在我想将一个事件暴露给名为OnValidating的容器页面,该页面将产生validation结果 该活动的签名如下: public delegate void Validating(object source,EventArgs e); public event Validating OnValidating; public void InvokeOnValidating(EventArgs e) { Validating handler = OnValidating; if (handler != null) handler(this, e); } 根据msdn文档,页面框架处理事件订阅和取消订阅。 所以我需要做的就是在validation失败时调用事件。 我很高兴,但是, 所有其他公共财产都没有在属性窗口中显示该事件 当我键入usercontrolid.时,为什么地狱是我的event invoker[InvokeOnValidating] , event delegate[Validating]在intellisense列表中显示usercontrolid. 以及event[OnValidating] 。 我只希望暴露事件。 我还可以允许页面订阅在usercontrol中创建的事件TextboxChanged吗? 如果是这样,请给我代码。 注意:我希望看到更多的代码而不是冗长的解释

链式异步/事件调用是否有一个有用的设计模式?

我目前不得不在Silverlight中集成大量的Web服务调用,这些调用类似于下面的代码。 在完成所有3的加载之前,不可能进行任何用户交互。 // In my view, having standard delegate methods (non-anonymous) makes the // code below even messier. // I’ve left out the EventArgs to shorten the example however // I usually use these objects in the delegate method. MyService1 service1 = new MyService1(); service1.GetAllUsersCompleted += delegate { MyService2 service2 = new MyService2(); service2.AnotherTaskCompleted += […]

创建委托事件

我正在尝试创建一个可以以其他forms访问的委托事件。 但主要forms没有看到能够看到我的代表。 它说代理名称此时无效。 模态forms public partial class GameOverDialog : Window { public delegate void ExitChosenEvent(); public delegate void RestartChosenEvent(); public GameOverDialog() { InitializeComponent(); } private void closeAppButton_Click(object sender, RoutedEventArgs e) { ExitChosenEvent exitChosen = Close; exitChosen(); Close(); } private void newGameButton_Click(object sender, RoutedEventArgs e) { RestartChosenEvent restart = Close; restart(); Close(); } } 主要forms: private […]

如何传递一个带有可选参数的方法作为参数?

ClassA说,我们有ClassA ,方法Foo包含一个可选参数。 所以,我们可以像DoFoo方法DoFoo使用它。 public class ClassA { public ClassA() { } public void Foo(bool flag = true) { } public void DoFoo() { Foo(); // == Foo(true); } } 一旦我需要将它传递给另一个ClassB类。 首先我尝试将其作为Action传递,但签名肯定不匹配。 然后我将其作为Action传递,签名匹配,但ClassB中的参数不再是可选的。 但我确实希望让它可选,并想出一个委托代表的想法。 所以,它奏效了。 public delegate void FooMethod(bool flag = true); public class ClassB { Action Foo1; FooMethod Foo2; public ClassB(Action _Foo1, FooMethod _Foo2) { […]

我应该使用List 还是仅使用Action 来跟踪IObservable的订户?

我正在某些类上实现IObservable接口。 我使用Reflector来弄清楚这是如何在Rx中完成的。 关于观察者如何跟踪其订阅者并通过他们的OnNext方法通知他们,我偶然发现了与此类似的代码: private List<Observer> observers; // subscribe a new observer: public IDisposable Subscribe(IObserver observer) { observers.Add(observer); … } // trigger all observers’ OnNext method: … foreach (IObserver observer in observers) { observer.OnNext(value); } 由于所有代表都是多播的,因此不能简化为: Action observers; // subscribe observer: public IDisposable Subscribe(IObserver observer) { observers += observer.OnNext; … } // trigger observers’ OnNext: … […]