public class MessageNameAttribute : Attribute
{
private readonly string _Name;
public string Name { get { return _Name; } }
public MessageNameAttribute( string name)
{
_Name = name;
}
// Use the hash code of the string objects and xor them together.
// SEHE: WTF I comment is broken
public override int GetHashCode( )
{
return _Name.GetHashCode ( ) ;
}
// Determine if the object is a match to this one.
public override bool Match( object obj)
{
if ( obj == this) // SEHE: WTF II Calls Equals in absense of operator==? NRE waiting
return true ;
if ( obj == null ) // SEHE: okay...
return false ;
if ( obj is MessageNameAttribute)
{
// Combine the hash codes and see if they're unchanged.
return ( ( ( MessageNameAttribute) obj) .GetHashCode ( ) & GetHashCode( ) ) == GetHashCode( ) ;
// SEHE: WTF III - wait a minute. So, if our hash code is 0, we'll **always** match?!
// If obj.GetHashCode is 0xFFFFFFFF we'll **always** match?
}
else
{
return false ;
}
}
}
cHVibGljIGNsYXNzIE1lc3NhZ2VOYW1lQXR0cmlidXRlIDogQXR0cmlidXRlCnsKCXByaXZhdGUgcmVhZG9ubHkgc3RyaW5nIF9OYW1lOwoJcHVibGljIHN0cmluZyBOYW1lIHsgZ2V0IHsgcmV0dXJuIF9OYW1lOyB9IH0KCXB1YmxpYyBNZXNzYWdlTmFtZUF0dHJpYnV0ZShzdHJpbmcgbmFtZSkKCXsKCQlfTmFtZSA9IG5hbWU7Cgl9CgoJLy8gVXNlIHRoZSBoYXNoIGNvZGUgb2YgdGhlIHN0cmluZyBvYmplY3RzIGFuZCB4b3IgdGhlbSB0b2dldGhlci4KCS8vIFNFSEU6IFdURiBJIGNvbW1lbnQgaXMgYnJva2VuCglwdWJsaWMgb3ZlcnJpZGUgaW50IEdldEhhc2hDb2RlKCkKCXsKCQlyZXR1cm4gX05hbWUuR2V0SGFzaENvZGUoKTsKCX0KCgkvLyBEZXRlcm1pbmUgaWYgdGhlIG9iamVjdCBpcyBhIG1hdGNoIHRvIHRoaXMgb25lLgoJcHVibGljIG92ZXJyaWRlIGJvb2wgTWF0Y2gob2JqZWN0IG9iaikKCXsKCQlpZiAob2JqID09IHRoaXMpIC8vIFNFSEU6IFdURiBJSSBDYWxscyBFcXVhbHMgaW4gYWJzZW5zZSBvZiBvcGVyYXRvcj09PyBOUkUgd2FpdGluZwoJCQlyZXR1cm4gdHJ1ZTsKCQlpZiAob2JqID09IG51bGwpIC8vIFNFSEU6IG9rYXkuLi4KCQkJcmV0dXJuIGZhbHNlOwoJCWlmIChvYmogaXMgTWVzc2FnZU5hbWVBdHRyaWJ1dGUpCgkJewoJCQkvLyBDb21iaW5lIHRoZSBoYXNoIGNvZGVzIGFuZCBzZWUgaWYgdGhleSdyZSB1bmNoYW5nZWQuCgkJCXJldHVybiAoKChNZXNzYWdlTmFtZUF0dHJpYnV0ZSlvYmopLkdldEhhc2hDb2RlKCkgJiBHZXRIYXNoQ29kZSgpKSA9PSBHZXRIYXNoQ29kZSgpOwoJCQkvLyBTRUhFOiBXVEYgSUlJIC0gd2FpdCBhIG1pbnV0ZS4gU28sIGlmIG91ciBoYXNoIGNvZGUgaXMgMCwgd2UnbGwgKiphbHdheXMqKiBtYXRjaD8hCgkJCS8vICAgICAgIElmIG9iai5HZXRIYXNoQ29kZSBpcyAweEZGRkZGRkZGIHdlJ2xsICoqYWx3YXlzKiogbWF0Y2g/CgkJfQoJCWVsc2UKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9Cn0K
compilation info
prog.cs(1,37): error CS0246: The type or namespace name `Attribute' could not be found. Are you missing a using directive or an assembly reference?
Compilation failed: 1 error(s), 0 warnings
stdout