public override int GetHashCode() { unchecked { var hashCode = Key.GetHashCode(); hashCode = (hashCode * 397) ^ Offset; hashCode = (hashCode * 397) ^ Count; hashCode = (hashCode * 397) ^ BindingSlot; return(hashCode); } }
public ParameterComposedKey(ParameterKey key, string name, int indexer) { Key = key; Name = name; Indexer = indexer; unchecked { hashCode = Key.GetHashCode(); hashCode = (hashCode * 397) ^ Name.GetHashCode(); hashCode = (hashCode * 397) ^ Indexer; } }
public void TestParameterKey() { var paramView1 = new ParameterKey<Vector3>("View"); var paramView2 = new ParameterKey<Vector3>("View"); var paramProj = new ParameterKey<Vector3>("Proj"); Assert.Throws(typeof (ArgumentNullException), () => new ParameterKey<Vector3>(null)); Assert.AreEqual(paramView1, paramView2); Assert.AreEqual(paramView1.GetHashCode(), paramView2.GetHashCode()); Assert.AreNotEqual(paramView1, null); Assert.AreNotEqual(paramView1, new object()); Assert.True(paramView1 == paramView2); Assert.True(paramView1 != paramProj); Assert.True(paramView1 == paramView2); Assert.True(ReferenceEquals(paramView1.Name, paramView2.Name)); }