void Update() { if (Input.GetKeyDown(KeyCode.Alpha1)) { SubClass _s; time [0] = Time.realtimeSinceStartup; for (int i = 0; i < countNew; i++) { _s = new SubClass(go, 1, tran.position); } time [1] = Time.realtimeSinceStartup; Debug.Log("Class new [" + countNew + "]:" + (time [1] - time [0])); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { SubStruct _s; time [0] = Time.realtimeSinceStartup; for (int i = 0; i < countNew; i++) { _s = new SubStruct(go, 1, tran.position); } time [1] = Time.realtimeSinceStartup; Debug.Log("Struct new [" + countNew + "]:" + (time [1] - time [0])); } else if (Input.GetKeyDown(KeyCode.Alpha3)) { time [0] = Time.realtimeSinceStartup; SubClass _s = new SubClass(go, 0, tran.position); for (int i = 0; i < countUse; i++) { FunC(_s, countUseSub); } time [1] = Time.realtimeSinceStartup; Debug.Log("Class using [" + countNew + "]:" + (time [1] - time [0]) + ":" + _s.x); } else if (Input.GetKeyDown(KeyCode.Alpha4)) { time [0] = Time.realtimeSinceStartup; SubStruct _s = new SubStruct(go, 0, tran.position); for (int i = 0; i < countUse; i++) { FunS(_s, countUseSub); } time [1] = Time.realtimeSinceStartup; Debug.Log("Struct using [" + countNew + "]:" + (time [1] - time [0]) + ":" + _s.x); } else if (Input.GetKeyDown(KeyCode.Alpha5)) { time [0] = Time.realtimeSinceStartup; SubStruct _s = new SubStruct(go, 0, tran.position); for (int i = 0; i < countUse; i++) { FunS2(ref _s, countUseSub); } time [1] = Time.realtimeSinceStartup; Debug.Log("Struct using(ref) [" + countNew + "]:" + (time [1] - time [0]) + ":" + _s.x); } }
public DeeperStruct(int item1, SimpleClass item2) { SubStructItem = new SubStruct() { Item1 = item1, Item2 = item2 }; }
public void Read(BinaryReader br) { uint bonesOffset = ResourceUtil.ReadOffset(br); uint unknownIntsOffset = ResourceUtil.ReadOffset(br); uint transforms1Offset = ResourceUtil.ReadOffset(br); uint transforms2Offset = ResourceUtil.ReadOffset(br); uint transforms3Offset = ResourceUtil.ReadOffset(br); BoneCount = br.ReadUInt16(); Unknown0 = br.ReadInt16(); Unknown1 = br.ReadInt32(); Unknown2 = br.ReadInt32(); BoneIDMappings = new SimpleCollection <BoneIDMapping>(br, r => new BoneIDMapping(r)); Unknown3 = br.ReadInt32(); UnknownHash = br.ReadUInt32(); Unknown4 = br.ReadInt32(); UnknownSubStruct = new SubStruct(br); // Data: br.BaseStream.Seek(bonesOffset, SeekOrigin.Begin); Bones = new SimpleArray <Bone>(br, BoneCount, r => new Bone(r)); br.BaseStream.Seek(unknownIntsOffset, SeekOrigin.Begin); UnknownInts = new SimpleArray <int>(br, BoneCount, r => r.ReadInt32()); br.BaseStream.Seek(transforms1Offset, SeekOrigin.Begin); Transforms1 = new SimpleArray <Matrix44>(br, BoneCount, r => new Matrix44(r)); br.BaseStream.Seek(transforms2Offset, SeekOrigin.Begin); Transforms2 = new SimpleArray <Matrix44>(br, BoneCount, r => new Matrix44(r)); br.BaseStream.Seek(transforms3Offset, SeekOrigin.Begin); Transforms3 = new SimpleArray <Matrix44>(br, BoneCount, r => new Matrix44(r)); // Fun stuff... // Build a mapping of Offset -> Bone var boneOffsetMapping = new Dictionary <uint, Bone>(); boneOffsetMapping.Add(0, null); foreach (var bone in Bones) { boneOffsetMapping.Add((uint)bone.Offset, bone); } // Now resolve all the bone offsets to the real bones foreach (var bone in Bones) { bone.Parent = boneOffsetMapping[bone.ParentOffset]; bone.FirstChild = boneOffsetMapping[bone.FirstChildOffset]; bone.NextSibling = boneOffsetMapping[bone.NextSiblingOffset]; } }
public static SubStruct Rehydrate(BinaryReader reader) { SubStruct instance = new SubStruct(); for (int i = 0; i < instance.d.Length; ++i) { instance.d[i] = reader.ReadUInt16(); } return(instance); }
void FunS(SubStruct _s, int _count) { _count--; if (_count <= 0) { return; } else { FunS(_s, _count); _s.x++; } }
public static Struct Rehydrate(BinaryReader reader) { Struct instance = new Struct(); instance.a = SubStruct.Rehydrate(reader); for (int i = 0; i < instance.b.Length; ++i) { instance.b[i] = reader.ReadUInt16(); } instance.c = reader.ReadInt32(); return(instance); }
public int ShowSubXml(string path, out List <SubStruct> targetNodes) { try { InitialConfig(path); //定义并从xml文件中加载节点(根节点) XElement rootNode = XElement.Load(path); //查询语句: 获得根节点下Net子节点 IEnumerable <XElement> Nodes = from target in rootNode.Descendants("Word") select target; targetNodes = new List <SubStruct>(); foreach (var item in Nodes) { //取值并重置 SubStruct ns = new SubStruct(); string AddTime = item.Element("AddTime").ToString(); AddTime = AddTime.Replace("</AddTime>", ""); AddTime = AddTime.Replace("<AddTime>", ""); ns.AddTime = AddTime; string SubCount = item.Element("SubCount").ToString(); SubCount = SubCount.Replace("</SubCount>", ""); SubCount = SubCount.Replace("<SubCount>", ""); ns.SubCount = int.Parse(SubCount); string SearchWord = item.Attribute("SearchWord").ToString(); SearchWord = SearchWord.Replace("\"", ""); SearchWord = SearchWord.Replace("SearchWord=", ""); ns.SearchWord = SearchWord; targetNodes.Add(ns); } } catch (Exception e) { Console.WriteLine(e); throw; } return(1); }
public void Repro64_v2_ReadonlyStructs_Direct() { var config = new SerializerConfig { DefaultTargets = TargetMember.AllFields, PreserveReferences = false }; config.Advanced.ReadonlyFieldHandling = ReadonlyFieldHandling.ForcedOverwrite; config.Advanced.SkipCompilerGeneratedFields = false; config.OnConfigNewType = tc => { tc.TypeConstruction = TypeConstruction.ByUninitialized(); }; var ceras = new CerasSerializer(config); var obj = new NullableWrapper(new Test { Value = 2.34M, SubStruct = new SubStruct(new NameAge("riki", 5), 6, 7) }); var objClone = ceras.Advanced.Clone(obj); Assert.Equal(obj.TestStruct, objClone.TestStruct); var subStruct = new SubStruct(new NameAge("riki", 5), 6, 7); var ssClone = ceras.Advanced.Clone(subStruct); Assert.True(DeepComparer.Instance.CheckEquality(subStruct, ssClone)); }
public void Read(BinaryReader br) { uint bonesOffset = ResourceUtil.ReadOffset(br); uint unknownIntsOffset = ResourceUtil.ReadOffset(br); uint transforms1Offset = ResourceUtil.ReadOffset(br); uint transforms2Offset = ResourceUtil.ReadOffset(br); uint transforms3Offset = ResourceUtil.ReadOffset(br); BoneCount = br.ReadUInt16(); Unknown0 = br.ReadInt16(); Unknown1 = br.ReadInt32(); Unknown2 = br.ReadInt32(); BoneIDMappings = new SimpleCollection<BoneIDMapping>(br, r => new BoneIDMapping(r)); Unknown3 = br.ReadInt32(); UnknownHash = br.ReadUInt32(); Unknown4 = br.ReadInt32(); UnknownSubStruct = new SubStruct(br); // Data: br.BaseStream.Seek(bonesOffset, SeekOrigin.Begin); Bones = new SimpleArray<Bone>(br, BoneCount, r => new Bone(r)); br.BaseStream.Seek(unknownIntsOffset, SeekOrigin.Begin); UnknownInts = new SimpleArray<int>(br, BoneCount, r => r.ReadInt32()); br.BaseStream.Seek(transforms1Offset, SeekOrigin.Begin); Transforms1 = new SimpleArray<Matrix44>(br, BoneCount, r => new Matrix44(r)); br.BaseStream.Seek(transforms2Offset, SeekOrigin.Begin); Transforms2 = new SimpleArray<Matrix44>(br, BoneCount, r => new Matrix44(r)); br.BaseStream.Seek(transforms3Offset, SeekOrigin.Begin); Transforms3 = new SimpleArray<Matrix44>(br, BoneCount, r => new Matrix44(r)); // Fun stuff... // Build a mapping of Offset -> Bone var boneOffsetMapping = new Dictionary<uint, Bone>(); boneOffsetMapping.Add(0, null); foreach (var bone in Bones) { boneOffsetMapping.Add((uint)bone.Offset, bone); } // Now resolve all the bone offsets to the real bones foreach (var bone in Bones) { bone.Parent = boneOffsetMapping[bone.ParentOffset]; bone.FirstChild = boneOffsetMapping[bone.FirstChildOffset]; bone.NextSibling = boneOffsetMapping[bone.NextSiblingOffset]; } }