コード例 #1
0
ファイル: ParameterKeyInfo.cs プロジェクト: vol16bit/xenko
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = Key.GetHashCode();
         hashCode = (hashCode * 397) ^ Offset;
         hashCode = (hashCode * 397) ^ Count;
         hashCode = (hashCode * 397) ^ BindingSlot;
         return(hashCode);
     }
 }
コード例 #2
0
            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;
                }
            }
コード例 #3
0
ファイル: ParametersTest.cs プロジェクト: h78hy78yhoi8j/xenko
        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));
        }