J'ai la classe suivante :
public class InterlockedBool
{
private int _value;
public bool Value
{
get { return _value > 0; }
set { System.Threading.Interlocked.Exchange(ref _value, value ? 1 : 0); }
}
public static bool operator ==(InterlockedBool obj1, bool obj2)
{
return obj1.Value.Equals(obj2);
}
public static bool operator !=(InterlockedBool obj1, bool obj2)
{
return !obj1.Value.Equals(obj2);
}
public override bool Equals(bool obj)
{
return this.Value.Equals(obj);
}
}
Ma question est la suivante : puis-je vérifier si Value est vrai, sans == true
? Le contournement de l'opérateur fonctionne, mais puis-je aussi l'utiliser comme ça ?
InterlockedBool ib = new InterlockedBool();
if (ib) { }
Au lieu de (cela fonctionne, mais normalement j'omets l'élément == true
en if
déclarations.
if (ib == true) { }
- Et comment l'affecter à une valeur sans utiliser
.Value =
?
Merci pour votre aide :)