当前位置: 首页>>代码示例>>C#>>正文


C# ParseResult.Select方法代码示例

本文整理汇总了C#中ParseResult.Select方法的典型用法代码示例。如果您正苦于以下问题:C# ParseResult.Select方法的具体用法?C# ParseResult.Select怎么用?C# ParseResult.Select使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ParseResult的用法示例。


在下文中一共展示了ParseResult.Select方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ReadValue

 private static object ReadValue(Domain domain, ParseResult result)
 {
     switch (result.Parser.Name) {
         case "Null": return null;
         case "Boolean": return bool.Parse(result.Value);
         case "Vector": return ParseVector(domain, result[0]);
         case "Float": return float.Parse(result[0].Value);
         case "Double": return double.Parse(result[0].Value);
         case "Integer": return int.Parse(result.Value);
         case "Hex Integer": return uint.Parse(result.Value, NumberStyles.HexNumber);
         case "String": return new string(result.Select(x => ParseChar(x)).ToArray());
         case "Location": return FindMember(domain, result).GetValue();
         default:
             throw new Exception("This should not occur - parser grammar is incorrect");
     }
 }
开发者ID:katalist5296,项目名称:SanAndreasUnity,代码行数:16,代码来源:ReflectionCommands.cs

示例2: FindMember

            public Member FindMember(Domain domain, ParseResult result)
            {
                var context = GetValue();
                var type = GetContextType(context);

                switch (result.Parser.Name) {
                    case "Member Access":
                        var name = result[0].Value;

                        foreach (var member in GetMembers(type).Where(x => x.Name == name)) {
                            var field = member as FieldInfo;
                            if (field != null) return new Field(field, context);
                            var prop = member as PropertyInfo;
                            if (prop != null) return new Property(prop, context);
                            var method = member as MethodInfo;
                            if (method != null) return new Method(method, context);
                        }

                        throw new Exception(string.Format("Could not find {2} member '{0}' in type '{1}'",
                            name, type.FullName, context == null ? "static" : "instance"));
                    case "Component Access":
                        var componentName = result[0].Value;
                        return new Component(componentName, context);
                    case "Invocation":
                // ReSharper disable once ConvertClosureToMethodGroup
                        var values = result.Select(x => ReadValue(domain, x)).ToArray();
                        return new Invocation(values, this);
                    default:
                        throw new Exception("This should not occur - parser grammar is incorrect");
                }
            }
开发者ID:katalist5296,项目名称:SanAndreasUnity,代码行数:31,代码来源:ReflectionCommands.cs

示例3: ParseVector

        private static object ParseVector(Domain domain, ParseResult result)
        {
            var values = result.Select(x => Convert.ToSingle(ReadValue(domain, x))).ToArray();

            switch (result.ChildCount) {
                case 2: return new Vector2(values[0], values[1]);
                case 3: return new Vector3(values[0], values[1], values[2]);
                case 4: return new Vector4(values[0], values[1], values[2], values[3]);
                default: throw new Exception("Failed to parse Vector - bad number of arguments");
            }
        }
开发者ID:katalist5296,项目名称:SanAndreasUnity,代码行数:11,代码来源:ReflectionCommands.cs


注:本文中的ParseResult.Select方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。