}; //无左括号 public override string Equal(string strOperator = "+", bool isEqualSign = false) { if (!isEqualSign) { if (canAddOperator(strOperator)) { while (RightInput.Length > 0 && (RightInput.IndexOf('.') != -1 && sOperatorNum[sOperatorNum.Length - 1] == '0' || RightInput[RightInput.Length - 1] == '.'))//删除多余的"."和"0" { sOperatorNum = sOperatorNum.Substring(0, sOperatorNum.Length - 1); RightInput = RightInput.Substring(0, RightInput.Length - 1); } sOperatorNum += strOperator; RightInput = ""; } } else { if (!isExpressionHolds()) { return(sOperatorNum); } var pts = new Parenthesis();//之后版本中用factory模式代替 pts.Expression = sOperatorNum; sOperatorNum = pts.CalculatePostfixExp(); } return(sOperatorNum); }
public async Task <Right> Add(RightInput right) { var entity = mapper.MapRight(right, new RightEntity()); this.dbContext.Add(entity); await SaveChanges(); return(mapper.MapRight(entity, new Right())); }
public override string SetPoint() { if (RightInput.IndexOf(".") == -1) { if (RightInput.Length != 0) { RightInput += "."; sOperatorNum += "."; } } return(sOperatorNum); }
public async Task <Right> Update(Guid rightId, RightInput right) { var entity = await this.Entity(rightId); if (entity != null) { mapper.MapRight(right, entity); await SaveChanges(); return(mapper.MapRight(entity, new Right())); } throw new KeyNotFoundException($"Cannot find right {rightId.ToString()}"); }
internal override void CompleteBufferOnPredecessorCompletion() { LeftInput.CompleteBufferOnPredecessorCompletion(); RightInput.CompleteBufferOnPredecessorCompletion(); Task.WaitAll(LeftInput.Completion, RightInput.Completion); try { EmptyQueues(); Buffer.Complete(); } catch (Exception e) { ((IDataflowBlock)Buffer).Fault(e); } }
/// <summary> /// 运算符是否能够继续添加 /// </summary> /// <param name="strOperator"></param> /// <returns></returns> private bool canAddOperator(string strOperator) { int len = 0; if (null != sOperatorNum) { len = sOperatorNum.Length; } if (len == 0)//第一个运算符只能添加左括号 { if (strOperator == "(" || strOperator == "√") { return(true); } return(false); } var c = sOperatorNum[len - 1]; if (c == '.') { sOperatorNum = sOperatorNum.Substring(0, sOperatorNum.Length - 1); RightInput = RightInput.Substring(0, RightInput.Length - 1); } if (strOperator == ")" && !norightphs.Contains(c.ToString())) //右括号只能添加在数字或右括号右边且个数不能大于左括号 { var leftParenthesis = StrstrCount(sOperatorNum, "("); var rightParenthesis = StrstrCount(sOperatorNum, ")"); if (leftParenthesis <= rightParenthesis)//左括号个数小于右括号个数不再添加右括号 { return(false); } return(true); } else if (strOperator == "(" && norightphs.Contains(c.ToString()))//左括号可以添加在非数字和非右括号的右边 { return(true); } else if ((!norightphs.Contains(c.ToString())) && nphs.Contains(strOperator)) //加减乘除符号可以添加在数字及右括号右边 { return(true); } else { return(true); } //return false; }
void Start() { stopped = true; MenuController.LoseEvent.AddListener(() => { ResetplayerObject(); }); StartGameEvent.AddListener(() => stopped = false); var input = this.gameObject.AddComponent <InputScript>(); input.InputScriptInit(UpInput, DownInput, RightInput, LeftInput); UpInput.AsObservable().Where(_ => moveDir != MovementDir.down).Subscribe(_ => { transform.LookAt(transform.position + Vector3.forward); moveDir = MovementDir.up; }); DownInput.AsObservable().Where(_ => moveDir != MovementDir.up).Subscribe(_ => { transform.LookAt(transform.position + -Vector3.forward); moveDir = MovementDir.down; }); RightInput.AsObservable().Where(_ => moveDir != MovementDir.left).Subscribe(_ => { transform.LookAt(transform.position + Vector3.right); moveDir = MovementDir.right; }); LeftInput.AsObservable().Where(_ => moveDir != MovementDir.right).Subscribe(_ => { transform.LookAt(transform.position + -Vector3.right); moveDir = MovementDir.left; }); transform.UpdateAsObservable().Where(_ => stopped == false) .Subscribe(x => transform.position += transform.forward * Time.deltaTime * baseMovementSpeed * movementSpeedMultiplier); MenuController.LoseEvent.AddListener(() => movementSpeedMultiplier = 1); }
public async Task <Right> Update(Guid rightId, [FromBody] RightInput right) { return(await repo.Update(rightId, right)); }
public async Task <Right> Add([FromBody] RightInput right) { return(await repo.Add(right)); }
internal override void FaultBufferOnPredecessorCompletion(Exception e) { LeftInput.FaultBufferOnPredecessorCompletion(e); RightInput.FaultBufferOnPredecessorCompletion(e); ((IDataflowBlock)Buffer).Fault(e); }
public static void AssertEqual(RightInput expected, RightEntity actual) { Assert.Equal(expected.Info, actual.Info); }
public RightEntity MapRight(RightInput src, RightEntity dest) { return(mapper.Map(src, dest)); }