|
using System;
namespace Switch.Rules
{
///////////////////////////////////////////////////////////////////////////
//
// IsTypeRule class
//
/// <summary>
/// This rule provides a test which passes for messages of a specified
/// type.
/// </summary>
public class IsTypeRule : Rule
{
private readonly Type _type;
private readonly int _hashcode;
public IsTypeRule(Type type)
{
_type = type;
_hashcode = string.Format("{0}({1})", typeof(IsTypeRule), _type).GetHashCode();
}
public override bool Test(Message message)
{
return _type.IsInstanceOfType(message);
}
public override bool Equals(object obj)
{
IsTypeRule rule = obj as IsTypeRule;
return rule != null && rule._type == _type;
}
public override int GetHashCode()
{
return _hashcode;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Hello, I'm Fred. I've been working with software since I was a kid, and the foreseeable future looks to hold more of the same.
When I was in 4th grade, I had a homework assignment where I was supposed to write out a list of prime numbers less than 100. Instead of writing it out by hand, I spent a couple of minutes writing a simple C program, and turned in a list of prime numbers less than 1,000,000.
Since then, I have enjoyed wasting countless hours (years) playing with various technologies, patterns, and code constructs, and occasionally learn something useful.