public override int GetHashCode()
        {
            int hash = 1;

            if (Id.Length != 0)
            {
                hash ^= Id.GetHashCode();
            }
            if (Company.Length != 0)
            {
                hash ^= Company.GetHashCode();
            }
            if (LanguageId.Length != 0)
            {
                hash ^= LanguageId.GetHashCode();
            }
            if (CompanyName.Length != 0)
            {
                hash ^= CompanyName.GetHashCode();
            }
            if (CompanyDescription_.Length != 0)
            {
                hash ^= CompanyDescription_.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
Esempio n. 2
0
        public override int GetHashCode()
        {
            int hash = GetType().GetHashCode();

            hash = (hash * 397) ^ Original.GetHashCode();
            hash = (hash * 397) ^ LanguageId.GetHashCode();

            return(hash);
        }
Esempio n. 3
0
    public void LanguageIdTest()
    {
        var undef = LanguageId.Undefined;
        var english = LanguageId.English;
        var chinese = LanguageId.Chinese;
        var camelEn = new LanguageId( "En" );
        var upperEn = new LanguageId( "EN" );
        var lowerEn = new LanguageId( "en" );


        // Values //

        Assert.AreEqual( english.tag, LanguageTag.En );
        Assert.AreEqual( chinese.tag, LanguageTag.Zh );
        Assert.AreEqual( undef.tag, LanguageTag.Xx );


        // Equality //

        // X == X
        Assert.True( english.Equals( english ));
        Assert.True( english == english );
        Assert.False( english != english );
        Assert.True( english.GetHashCode() == english.GetHashCode() );

        // X == Y
        Assert.True( english == camelEn );
        Assert.True( english != chinese );
        Assert.True( english.GetHashCode() == camelEn.GetHashCode() );

        // X == Y, case insensitive
        Assert.True( english == lowerEn );
        Assert.True( english == upperEn );
        Assert.True( lowerEn == upperEn );
        Assert.True( lowerEn.GetHashCode() == upperEn.GetHashCode() );

        // X == ref( X )
        var refEn = english;
        Assert.True( english == refEn );
        Assert.True( english.GetHashCode() == refEn.GetHashCode() );

        // Compare to null
        LanguageId nullA = null;
        LanguageId nullB = null;
        Assert.False( english.Equals( null ));
        Assert.False( english == null );
        Assert.False( null == english );
        Assert.False( english == nullA );
        Assert.True( nullA == nullB );


        // Comparisons //

        var set = new HashSet< LanguageId >();

        Assert.True( set.Add( english ));
        Assert.True( set.Add( chinese ));

        // key collided
        Assert.False( set.Add( english ));
        Assert.False( set.Add( upperEn ));
        Assert.False( set.Add( lowerEn ));

        Assert.True( set.Contains( english ));
        Assert.True( set.Contains( chinese ));
        Assert.False( set.Contains( new LanguageId( "de" )));

        // case insensitive
        Assert.True( set.Contains( upperEn ));
        Assert.True( set.Contains( lowerEn ));


        var list = new List< LanguageId >();

        list.Add( english );
        list.Add( chinese );
        list.Add( undef );

        list.Sort();

        Assert.True( list[0] == english );
        Assert.True( list[1] == undef );
        Assert.True( list[2] == chinese );
    }
Esempio n. 4
0
 public override Int32 GetHashCode()
 {
     return(ParentName.GetHashCode() ^ LanguageId.GetHashCode());
 }