Sadece ve benzeri ve && operatör, çift Operatör bir "kısa devre" operatörüdür.
Örneğin:
if(condition1 || condition2 || condition3)
Condition1 doğruysa, durum 2 ve 3 kontrol edilmeyecektir.
if(condition1 | condition2 | condition3)
1 Zaten doğru olsa bile, bu, koşulları 2 ve 3 kontrol edecektir. Şartlarınız oldukça pahalı fonksiyonlar olabilir gibi, bunları kullanarak iyi bir performans artışı elde edebilirsiniz.
There is one big caveat, NullReferences or similar problems. Örneğin:
if(class != null && class.someVar < 20)
Sınıf null ise, if ifadesinin "class! = Null" sonra duracaktır yanlıştır. Eğer sadece kullanmak ve eğer, bu class.someVar kontrol etmek için çalışacağız ve güzel bir NullReferenceException olsun. Or-İşletmeci ile size kötü bir şey tetikleyebilir olası olduğu gibi bu bir tuzak o kadar olmayabilir, ama akılda tutulması gereken bir şey var.
Hiç kimse tek ve kullanır veya | operatörleri olsa da, her koşul yürütülecek HAS bir fonksiyonu olan bir tasarıma sahip olmadıkça. Bir tasarım koku gibi geliyor, ama bazen (nadiren) o şeyler yapmak için temiz bir yoldur. & Operatör, "Bu 3 fonksiyonları çalıştırmak, ve bunlardan biri false döndürürse, else bloğu çalıştırmak" yok iken | "none return false yalnızca else bloğu çalıştırmak" yok - yararlı olabilir, ancak dedi, sık sık bir dizayn kokusu.
Orada bir ikinci kullanımı | ve & Operatör olsa: Bitwise Operations.