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


C# RubyStruct.GetNames方法代码示例

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


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

示例1: ToYamlNode

 public static Node ToYamlNode(RubyStruct/*!*/ self, [NotNull]RubyRepresenter/*!*/ rep) {
     var fieldNames = self.GetNames();
     var map = new Dictionary<MutableString, object>(fieldNames.Count);
     for (int i = 0; i < fieldNames.Count; i++) {
         map[MutableString.Create(fieldNames[i])] = self.GetValue(i);
     }
     rep.AddYamlProperties(self, map);
     return rep.Map(self, map);
 }
开发者ID:jxnmaomao,项目名称:ironruby,代码行数:9,代码来源:BuiltinsOps.cs

示例2: WriteStruct

 private void WriteStruct(RubyStruct/*!*/ obj) {
     WriteSubclassData(obj, typeof(RubyStruct));
     _writer.Write((byte)'S');
     RubyClass theClass = _context.GetClassOf(obj);
     TestForAnonymous(theClass);
     WriteModuleName(theClass);
     var names = obj.GetNames();
     WriteInt32(names.Count);
     foreach (string name in names) {
         int index = obj.GetIndex(name);
         // TODO (encoding):
         WriteSymbol(name, _context.GetIdentifierEncoding());
         WriteAnObject(obj[index]);
     }
 }
开发者ID:rafacv,项目名称:iron_languages,代码行数:15,代码来源:Marshal.cs

示例3: Inspect

        public static MutableString/*!*/ Inspect(RubyStruct/*!*/ self) {
            RubyContext context = self.ImmediateClass.Context;

            using (IDisposable handle = RubyUtils.InfiniteInspectTracker.TrackObject(self)) {
                // #<struct Struct::Foo name=nil, val=nil>
                var result = MutableString.CreateMutable(RubyEncoding.Binary);
                result.Append("#<struct ");
                result.Append(context.Inspect(context.GetClassOf(self)));

                if (handle == null) {
                    return result.Append(":...>");
                }
                result.Append(' ');

                object[] data = self.Values;
                var members = self.GetNames();
                for (int i = 0; i < data.Length; i++) {
                    if (i != 0) {
                        result.Append(", ");
                    }
                    // TODO (encoding):
                    result.Append(members[i]);
                    result.Append('=');
                    result.Append(context.Inspect(data[i]));
                }
                result.Append('>');
                return result;
            }
        }
开发者ID:jschementi,项目名称:iron,代码行数:29,代码来源:StructOps.cs

示例4: WriteStruct

 private void WriteStruct(RubyStruct/*!*/ obj) {
     SubclassData instanceWriter = new SubclassData(this, obj, typeof(RubyStruct));
     _writer.Write((byte)'S');
     RubyClass theClass = _context.GetClassOf(obj);
     TestForAnonymous(theClass);
     WriteSymbol(theClass.Name);
     var names = obj.GetNames();
     WriteInt32(names.Count);
     foreach (string name in names) {
         int index = obj.GetIndex(name);
         WriteSymbol(name);
         WriteAnObject(obj[index]);
     }
 }
开发者ID:mscottford,项目名称:ironruby,代码行数:14,代码来源:Marshal.cs

示例5: Inspect

        public static MutableString/*!*/ Inspect(RubyStruct/*!*/ self) {
            RubyContext context = self.Class.Context;

            using (IDisposable handle = RubyUtils.InfiniteInspectTracker.TrackObject(self)) {
                // #<struct Struct::Foo name=nil, val=nil>
                MutableString str = MutableString.Create("#<struct ");
                str.Append(RubySites.Inspect(context, context.GetClassOf(self)));

                if (handle == null) {
                    return str.Append(":...>");
                }
                str.Append(' ');

                object[] data = self.Values;
                var members = self.GetNames();
                for (int i = 0; i < data.Length; i++) {
                    if (i != 0) {
                        str.Append(", ");
                    }
                    str.Append(members[i]);
                    str.Append("=");
                    str.Append(RubySites.Inspect(context, data[i]));
                }
                str.Append('>');
                return str;
            }
        }
开发者ID:joshholmes,项目名称:ironruby,代码行数:27,代码来源:StructOps.cs

示例6: ToYamlNode

        public static Node ToYamlNode(RubyStruct/*!*/ self, [NotNull]RubyRepresenter/*!*/ rep)
        {
            var fieldNames = self.GetNames();

            var fields = new Dictionary<Node, Node>(fieldNames.Count);
            for (int i = 0; i < fieldNames.Count; i++) {
                fields[rep.Scalar(null, fieldNames[i], ScalarQuotingStyle.None)] = rep.RepresentItem(self.Values[i]);
            }

            var map = new Dictionary<object, object>();
            rep.AddYamlProperties(map, self, false);
            return rep.Map(fields, rep.GetTagUri(self), map, FlowStyle.Block);
        }
开发者ID:TerabyteX,项目名称:main,代码行数:13,代码来源:BuiltinsOps.cs


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