public event EventHandler <CarInfoEventArgs> NewCarInfo; //定义了类型为EventHandler<CarInfoEventArgs>的NewCarInfo事件 //然后再NewCar()方法中,通过调用RaiseNewCarInfo方法触发NewCarInfo,这个方法的实现检查委托是否为空,不为空引发事件 protected virtual void RaiseNewCarInfo(string car) //在这个方法中触发事件 { NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); //简化版委托调用 //EventHandler<CarInfoEventArgs> newCarInfo = NewCarInfo; //if (newCarInfo != null) //{ // newCarInfo(this, new CarInfoEventArgs(car)); //} }
public void NewCar(string car) { Console.WriteLine($"New car! {car}"); //NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); if (NewCarInfo != null) { NewCarInfo.Invoke(this, new CarInfoEventArgs(car)); } }
public void NewCar(string car) { Console.WriteLine($"CarDealer, new car {car}"); NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); //if (NewCarInfo != null) //{ // NewCarInfo(this, new CarInfoEventArgs(car)); //} }
/// <summary> /// 调用注册的所有委托 /// </summary> /// <param name="car"></param> public void NewCar(string car) { WriteLine($"CarDealer,new car {car}"); //回调注册的方法,触发事件 NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));//等效于下边的写法 //if (NewCarInfo!=null) //{ // NewCarInfo.Invoke(this, new CarInfoEventArgs(car)); //} }
protected virtual void RaiseNewCarInfo(string car) { // Delegate类的GetInvocationList()按照调用顺序返回此多路广播委托的调用列表 var newCarInfo = NewCarInfo.GetInvocationList(); // 该方法的实现检查委托是否不为空,若不为空就触发事件 if (newCarInfo != null) { // 事件一般采用带两个参数的方法: // 第1个参数是一个对象,包含事件的发送者; // 第2个参数提供了事件的相关信息; NewCarInfo(this, new CarInfoEventArgs(car)); } }
public void NewCar(string car) { NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); }
public void NewCar(string car) { Console.WriteLine($"CarDealer,new car {car}"); NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); }
public void NewCar(string car) { Console.WriteLine("调用NewCar()方法"); NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); }
public void NewCar(string car) { Console.WriteLine($"CarDealer,new car{car}"); //触发事件之前要检查委托是否为null ?. NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); }
public void RaiseNewCarInfo(string car) { Console.WriteLine("\nDealer, nowe auto: {0}", car); NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); }
public void RaiseNewCarInfo(string car) { Console.WriteLine("\n{0}, nowe auto: {1}, czas: {2}", getName(), car, DateTime.Now); // emituj zdarzenie, gdy ktoś czeka! NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); }
private void btnBuildTeam_Click(object sender, EventArgs e) { try { _toolbuildteam = new ToolBuildTeam((AccountInfo)cmbAccount.SelectedItem); _toolbuildteam.MessageChanged += new KaixinBase.MessageChangedEventHandler(_toolbuildteam_MessageChanged); _toolbuildteam.ValidateCodeNeeded += new KaixinBase.ValidateCodeNeededEventHandler(_toolbuildteam_ValidateCodeNeeded); _toolbuildteam.BuildTeamFinished += new GamePark.BuildTeamFinishedEventHandler(_toolbuildteam_BuildTeamFinished); if (cmbAccount.Items.Count <= 0 || cmbAccount.SelectedIndex < 0) { MessageBox.Show("请选择账号!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); cmbAccount.Select(); return; } if (lstViewCarsInMarket.SelectedItems.Count == 0) { MessageBox.Show("请在市场上的汽车列表里选择你需要组建的车队车型!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); lstViewCarsInMarket.Select(); return; } if (cmbMaxCarCount.Items.Count <= 0 || cmbMaxCarCount.SelectedIndex < 0) { MessageBox.Show("请选择汽车数量!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); cmbMaxCarCount.Select(); return; } _account = cmbAccount.Items[cmbAccount.SelectedIndex] as AccountInfo; if (_account == null) { return; } _modelcar = new NewCarInfo(); ListViewItem item = lstViewCarsInMarket.SelectedItems[0]; if (item != null) { _modelcar.CarId = DataConvert.GetInt32(item.SubItems[3].Text); _modelcar.CarName = item.SubItems[1].Text; _modelcar.CarPrice = DataConvert.GetInt32(item.SubItems[2].Text); } if (_modelcar.CarPrice < 70000) { MessageBox.Show("按规则70000元以下的车型,同一款车只能拥有一辆!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); lstViewCarsInMarket.Select(); return; } if (_modelcar.CarPrice < 200000) { if (MessageBox.Show("根据游戏规则,不能组建汽车单价低于200000的车队!是否继续?", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { lstViewCarsInMarket.Select(); return; } } _maxcarcount = DataConvert.GetInt32(cmbMaxCarCount.Items[cmbMaxCarCount.SelectedIndex].ToString()); _exchange = ExchangeCar.Stop; if (rdbExpensive.Checked) { _exchange = ExchangeCar.Expensive; } else if (rdbCheap.Checked) { _exchange = ExchangeCar.Cheap; } SetControlStatus(false); _toolbuildteam._account = _account; _toolbuildteam._modelcar = _modelcar; _toolbuildteam._maxcarcount = _maxcarcount; _toolbuildteam._exchange = _exchange; _toolbuildteam._carsInMarket = _carsInMarket; _toolbuildteam.BuildTeamByThread(); } catch (Exception ex) { Program.ShowMessageBox("FrmBuildTeam", ex); } }
protected virtual void RaiseNewCarInfo(string car) { NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); }