C# 给出C中事件的参数#
我想在事件上给出一个out参数,但它不起作用 像这样 错误:无法在匿名方法或lambda表达式中使用参数outC# 给出C中事件的参数#,c#,events,out,C#,Events,Out,我想在事件上给出一个out参数,但它不起作用 像这样 错误:无法在匿名方法或lambda表达式中使用参数out public void CallMyMethod() { //{... code here`removed...just for initialize object} int? count = null; MyMethod(myObject,count); } public static void MyMethod(AnObject myObject,out int?c
public void CallMyMethod()
{
//{... code here`removed...just for initialize object}
int? count = null;
MyMethod(myObject,count);
}
public static void MyMethod(AnObject myObject,out int?count)
{
//{... code removed...}
IEnumerable<AnAnotherObject> objects = myObject.GetAllObjects();//... get objects
count = (count == null) ? objects.Count() : count;
MyPopup popup = CreateMypopup();
popup.Show();
popup.OnPopupClosed += (o, e) =>//RoutedEventHandler
{
if (--count <= 0)
{
Finished();//method to finish the reccursive method;
}
else
{
MyMethod(myObject, out count);
}
};
}
public void CallMyMethod()
{
//{…此处代码`已删除…仅用于初始化对象}
int?count=null;
MyMethod(myObject,count);
}
公共静态void MyMethod(一个对象myObject,out int?count)
{
//{…代码已删除…}
IEnumerable objects=myObject.GetAllObjects();/…获取对象
count=(count==null)?objects.count():count;
MyPopup popup=CreateMypopup();
popup.Show();
popup.OnPopupClosed+=(o,e)=>//RoutedEventHandler
{
如果(--count将参数传递给事件处理程序的标准方法是定义自己的类
public class MyObjectArgs: EventArgs
{
MyObject myObj {get;set}
int? Count {get; set;}
}
然后将该类的同一实例向下传递递归调用
public void CallMyMethod()
{
//{... code here`removed...just for initialize object}
MyObjectArgs args = new MyObjectArgs();
args.Count = null;
args.myOby = myObject;
MyMethod(args);
}
public static void MyMethod(MyObjectArgs args)
{
//{... code removed...}
IEnumerable<AnAnotherObject> objects = args.myObj.GetAllObjects();//... get objects
args.Count = (args.Count == null) ? objects.Count() : args.Count;
MyPopup popup = CreateMypopup();
popup.Show();
popup.OnPopupClosed += (o, e) =>//RoutedEventHandler
{
if (--args.Count <= 0)
{
Finished();//method to finish the reccursive method;
}
else
{
MyMethod(args);
}
};
}
很高兴能为您提供帮助。请阅读此元数据
args.Count = (args.Count == null) ? objects.Count() : args.Count + objects.Count();