本文整理汇总了C#中StateFlags.HasFlag方法的典型用法代码示例。如果您正苦于以下问题:C# StateFlags.HasFlag方法的具体用法?C# StateFlags.HasFlag怎么用?C# StateFlags.HasFlag使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StateFlags
的用法示例。
在下文中一共展示了StateFlags.HasFlag方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ParseToken
private void ParseToken(StringBuilder buffer, StateFlags state, StateFlags? nextState, StringBuilder executionSql)
{
var token = buffer.ToString().Replace("\r", "");
if (state.HasFlag(StateFlags.Comment)) {
if (!state.HasFlag(StateFlags.Multiline))
{
var match = DescriptionRegex.Match(token);
if (match.Success)
{
var name = match.Groups["name"].Value;
var parameter = Parameters.ContainsKey(name) ? Parameters[name] : new QueryParameter();
parameter.Label = match.Groups["label"].Value;
if (match.Groups["description"].Success)
{
parameter.Description = match.Groups["description"].Value;
}
Parameters[name] = parameter;
}
executionSql.Append('\n');
}
sql.Append(token);
}
else
{
sql.Append(token);
if (!state.HasFlag(StateFlags.String))
{
token = WhitespaceRegex.Replace(token, "${whitespace}");
token = BoundarySpacesRegex.Replace(token, "");
if (nextState.HasValue && nextState.Value.HasFlag(StateFlags.Comment) && !nextState.Value.HasFlag(StateFlags.Multiline))
{
token = token.TrimEnd(' ');
}
}
var matches = ParamsRegex.Matches(token);
foreach (Match match in matches)
{
var name = match.Groups["name"].Value;
var parameter = Parameters.ContainsKey(name) ? Parameters[name] : new QueryParameter();
if (match.Groups["type"].Success)
{
var type = match.Groups["type"].Value.ToLower();
if (CheckIfTypeIsKnown(type))
{
parameter.Type = type;
}
else
{
Errors.Add(string.Format("{0} has unknown parameter type {1}!", name, type));
}
}
if (match.Groups["default"].Success)
{
var value = match.Groups["default"].Value;
if (!parameter.Type.HasValue() || ValidateType(parameter.Type, value))
{
parameter.Default = value;
}
else
{
Errors.Add(string.Format("{0}'s default value of {1} is invalid for the type {2}!", name, value, parameter.Type));
}
}
parameter.Required = parameter.Default == null;
Parameters[name] = parameter;
token = token.ReplaceFirst(match.Value, "##" + name + "##");
}
if (executionSql.Length > 0 && executionSql[executionSql.Length - 1] == '\n')
{
token = token.TrimStart('\n', ' ');
}
executionSql.Append(token);
}
}