本文整理汇总了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);
}
示例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]);
}
}
示例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;
}
}
示例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]);
}
}
示例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;
}
}
示例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);
}