'C yanlış operatör s# burada ne için iyi?
C iki garip operatörleri vardır#:
Eğer bunu doğru anladıysam bu operatörler boolean bir ifade yerine kullanmak istiyorum ve bool örtülü bir dönüşüm sağlamak istemiyorum nerede tiplerinde kullanılabilir.
Hadi aşağıdaki bir Dersim var ki:
public class MyType
{
public readonly int Value;
public MyType(int value)
{
Value = value;
}
public static bool operator true (MyType mt)
{
return mt.Value > 0;
}
public static bool operator false (MyType mt)
{
return mt.Value < 0;
}
}
Aşağıdaki kodu yazabilirsiniz:
MyType mTrue = new MyType(100);
MyType mFalse = new MyType(-100);
MyType mDontKnow = new MyType(0);
if (mTrue)
{
// Do something.
}
while (mFalse)
{
// Do something else.
}
do
{
// Another code comes here.
} while (mDontKnow)
Ancak herkes için tek gerçek operatör yukarıdaki örnekler yürütülür. C yanlış operatör ne kadar# iyi?
CEVAP
&&
||
operatörler geçersiz kılmak için kullanabilirsiniz.
&&
||
operatörler olamaz kılınmış, ama geçersiz kılın |
, &
, true
ve false
tam olarak doğru derleyici Ara |
&
yazdığında ||
&&
.
Örneğin, bu kod (bu numara hakkında; archived version @tarafından BiggsTRC buldum http://ayende.com/blog/1574/nhibernate-criteria-api-operator-overloading -) bak:
public static AbstractCriterion operator &(AbstractCriterion lhs, AbstractCriterion rhs)
{
return new AndExpression(lhs, rhs);
}
public static AbstractCriterion operator |(AbstractCriterion lhs, AbstractCriterion rhs)
{
return new OrExpression(lhs, rhs);
}
public static bool operator false(AbstractCriterion criteria)
{
return false;
}
public static bool operator true(AbstractCriterion criteria)
{
return false;
}
Bu tabii ki bir yan etkisi kullanılmak amacıyla böyle değil, ama yararlı.
Ne kadar yanlış Gıt şube taahhüdünde d...
Nasıl Bash komut dosyası için burada b...
<fieldset> yeniden boyutlandırır...
&; Alıcı tipi " 'CALayer' ör...
Nasıl ayarı yanlış LinearLayout perfor...