There is actually a 'true' operator you can use for this purpose, though it's a bit obscure. This is slightly more specific than a conversion to bool, as it is limited to use in expressions that check for true/false.
public class BoolClass
{
public static bool operator true(BoolClass instance)
{
return true; //Logic goes here
}
public static bool operator false(BoolClass instance)
{
return true; //Logic goes here
}
public void Test()
{
BoolClass boolClass = new BoolClass();
if (boolClass)
{
//Do something here
}
}
}
Note that MS actually recommends against using this operator,as it was originally intended to allow for a kind of nullable bool type (where a value could be neither true nor false). Since nullable bools are now natively supported, those are preferred. I'd recommend against using it in production code, mainly because most developers won't be familiar with the syntax, causing confusion.