Equals() public method

public Equals ( object o ) : bool
o object
return bool
	public void PublicKey () 
	{
		StrongNamePublicKeyBlob snpkb = new StrongNamePublicKeyBlob (pk);
		Assert.IsTrue (snpkb.Equals (snpkb), "Equals(Self)");
		Assert.IsFalse (snpkb.Equals (null), "Equals(null)");
		Assert.AreEqual ("00240000048000009400000006020000002400005253413100040000010001003DBD7208C62B0EA8C1C058072B635F7C9ABDCB22DB20B2A9DADAEFE800642F5D8DEB7802F7A5367728D7558D1468DBEB2409D02B131B926E2E59544AAC18CFC909023F4FA83E94001FC2F11A27477D1084F514B861621A0C66ABD24C4B9FC90F3CD8920FF5FFCED76E5C6FB1F57DD356F96727A4A5485B079344004AF8FFA4CB", snpkb.ToString (), "ToString(pk)");

		StrongNamePublicKeyBlob snpkb2 = new StrongNamePublicKeyBlob (pk);
		Assert.IsTrue (snpkb.Equals (snpkb2), "Equals()-true");
		StrongNamePublicKeyBlob snpkb3 = new StrongNamePublicKeyBlob (bad);
		Assert.IsFalse (snpkb.Equals (snpkb3), "Equals()-false");

		// non standard get hash code - why ???
		Assert.AreEqual (snpkb2.GetHashCode (), snpkb.GetHashCode (), "GetHashCode-0");

		// the first 4 bytes has code has been fixed in 2.0 beta 1

// Historical data:
// #elif NET_1_1
// 		// It seems to be the first four bytes of the public key data
// 		// which seems like non sense as all valid public key will have the same header ?
// 		Assert.AreEqual (2359296, snpkb.GetHashCode (), "GetHashCode-1");
// 		Assert.AreEqual (2359296, snpkb2.GetHashCode (), "GetHashCode-2");
// 		Assert.AreEqual (2989, snpkb3.GetHashCode (), "GetHashCode-3");
// 		byte[] header = { 0x00, 0x24, 0x00, 0x00 };
// 		StrongNamePublicKeyBlob snpkb4 = new StrongNamePublicKeyBlob (header);
// 		Assert.AreEqual (2359296, snpkb4.GetHashCode (), "GetHashCode-4");
// #endif
	}
            internal bool IsSubsetOf(SNIP target)
            {
                if ((PublicKey != null) && PublicKey.Equals(target.PublicKey))
                {
                    return(true);
                }

                if (!IsNameSubsetOf(target.Name))
                {
                    return(false);
                }
                if ((AssemblyVersion != null) && !AssemblyVersion.Equals(target.AssemblyVersion))
                {
                    return(false);
                }
                // in case PermissionState.None was used in the constructor
                if (PublicKey == null)
                {
                    return(target.PublicKey == null);
                }
                return(false);
            }
        public override bool IsSubsetOf(IPermission target)
        {
            // Handle the easy cases first.
            if (target == null)
            {
                return(blob == null);
            }
            else if (!(target is StrongNameIdentityPermission))
            {
                throw new ArgumentException(_("Arg_PermissionMismatch"));
            }

            // Check blob subset conditions.
            StrongNameIdentityPermission t;

            t = ((StrongNameIdentityPermission)target);
            if (blob != null && !blob.Equals(t.blob))
            {
                return(false);
            }

            // Check name subset conditions.
            if (name != null && name != t.name)
            {
                return(false);
            }

            // Check version subset conditions.
            if (version != null && version != t.version)
            {
                return(false);
            }

            // It is a subset.
            return(true);
        }