protected override Deconstructed <string, string, string[]> Deconstruct(string[] item) { var rem = new string[item.Length - 2]; Array.Copy(item, 2, rem, 0, item.Length - 2); return(Deconstructed.Create(item[0], item[1], rem)); }
protected override string[] Reconstruct(Deconstructed <string, string, string[]> deconstructed) { var item = new string[deconstructed.NonCached.Length + 2]; item[0] = deconstructed.Cached1; item[1] = deconstructed.Cached2; Array.Copy(deconstructed.NonCached, 0, item, 2, deconstructed.NonCached.Length); return(item); }
public void Deconstructed_1Cached_Equality() { var d1 = Deconstructed.Create(1, 2); var d2 = Deconstructed.Create(1, 2); var d3 = Deconstructed.Create(int.MaxValue, 2); var d4 = Deconstructed.Create(1, int.MaxValue); Assert.IsTrue(d1 == d2); Assert.IsTrue(d1.Equals((object)d2)); Assert.IsFalse(d1.Equals(new object())); Assert.IsTrue(d1 != d3); Assert.IsFalse(d1 == d3); Assert.IsFalse(d1 == d4); Assert.AreEqual(d1.GetHashCode(), d2.GetHashCode()); }
protected override Foo Reconstruct(Deconstructed <string, object> deconstructed) { return(new Foo { Shared = deconstructed.Cached, Unshared = deconstructed.NonCached }); }
protected override Deconstructed <string, object> Deconstruct(Foo item) { return(Deconstructed.Create(item.Shared, item.Unshared)); }
protected override ConstantExpression Reconstruct(Deconstructed <Type, object> deconstructed) { return(Expression.Constant(deconstructed.NonCached, deconstructed.Cached)); }
protected override Deconstructed <Type, object> Deconstruct(ConstantExpression item) { return(Deconstructed.Create(item.Type, item.Value)); }
protected override Foo Reconstruct(Deconstructed <Bar, int> deconstructed) { return(new Foo { Bar = deconstructed.Cached, Num = deconstructed.NonCached }); }
protected override Deconstructed <Bar, int> Deconstruct(Foo item) { return(Deconstructed.Create(item.Bar, item.Num)); }
protected override Bar Reconstruct(Deconstructed <string, object> deconstructed) { return(new Bar { Baz = deconstructed.Cached, Qux = deconstructed.NonCached }); }
protected override Deconstructed <string, object> Deconstruct(Bar item) { return(Deconstructed.Create(item.Baz, item.Qux)); }