/* * Used for items starting off outside inventory * Presets their identity to item with index in database */ void Start() { _inventory = GameObject.FindGameObjectWithTag("Inventory"); Tool newTool = _inventory.GetComponent <InventoryLogic>().ReturnToolDb().ToolDatabase[indexInDb]; _identifer = GetComponent <Identifer>(); _identifer.SetIdentity(newTool); }
/// <summary> /// 自定义验证规则 /// </summary> /// <param name="validationContext"></param> /// <returns></returns> public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { if (Type == LoginType.Account) { if (Identifer.IsNullOrWhiteSpace()) { yield return(new ValidationResult( "登录名不能为空!", new[] { "LoginName" } )); } if (Credential.IsNullOrWhiteSpace()) { yield return(new ValidationResult( "密码不能为空!", new[] { "Password" } )); } } else { if (Identifer.IsNullOrWhiteSpace()) { yield return(new ValidationResult( "手机号不能为空!", new[] { "Phone" } )); } if (Credential.IsNullOrWhiteSpace()) { yield return(new ValidationResult( "验证码不能为空!", new[] { "Captcha" } )); } } }
public Token GetToken() { while (lastChar == ' ' || lastChar == '\t' || lastChar == '\r') { GetChar(); } TokenMarker = sourceMarker; if (char.IsLetter(lastChar)) { Identifer = lastChar.ToString(); while (char.IsLetterOrDigit(GetChar())) { Identifer += lastChar; } switch (Identifer.ToUpper()) { case "PRINT": return(Token.Print); case "IF": return(Token.If); case "ENDIF": return(Token.EndIf); case "THEN": return(Token.Then); case "ELSE": return(Token.Else); case "FOR": return(Token.For); case "TO": return(Token.To); case "NEXT": return(Token.Next); case "GOTO": return(Token.Goto); case "INPUT": return(Token.Input); case "LET": return(Token.Let); case "GOSUB": return(Token.Gosub); case "RETURN": return(Token.Return); case "END": return(Token.End); case "OR": return(Token.Or); case "AND": return(Token.And); case "NOT": return(Token.Not); case "REM": while (lastChar != '\n') { GetChar(); } GetChar(); return(GetToken()); default: return(Token.Identifer); } } if (char.IsDigit(lastChar)) { string num = ""; do { num += lastChar; } while (char.IsDigit(GetChar()) || lastChar == '.'); double real; if (!double.TryParse(num, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out real)) { throw new Exception("ERROR while parsing number"); } Value = new Value(real); return(Token.Value); } Token tok = Token.Unkown; switch (lastChar) { case '\n': tok = Token.NewLine; break; case ':': tok = Token.Colon; break; case ';': tok = Token.Semicolon; break; case ',': tok = Token.Comma; break; case '=': tok = Token.Equal; break; case '+': tok = Token.Plus; break; case '-': tok = Token.Minus; break; case '/': tok = Token.Slash; break; case '*': tok = Token.Asterisk; break; case '^': tok = Token.Caret; break; case '(': tok = Token.LParen; break; case ')': tok = Token.RParen; break; case '\'': while (lastChar != '\n') { GetChar(); } GetChar(); return(GetToken()); case '<': GetChar(); if (lastChar == '>') { tok = Token.NotEqual; } else if (lastChar == '=') { tok = Token.LessEqual; } else { return(Token.Less); } break; case '>': GetChar(); if (lastChar == '=') { tok = Token.MoreEqual; } else { return(Token.More); } break; case '"': string str = ""; while (GetChar() != '"') { if (lastChar == '\\') { switch (char.ToLower(GetChar())) { case 'n': str += '\n'; break; case 't': str += '\t'; break; case '\\': str += '\\'; break; case '"': str += '"'; break; } } else { str += lastChar; } } Value = new Value(str); tok = Token.Value; break; case (char)0: return(Token.EOF); } GetChar(); return(tok); }