คำถามติดแท็ก boolean

6
แนวปฏิบัติบูลีนที่ดีที่สุด [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันเจอเงื่อนไขต่อไปนี้ในโปรแกรมที่ฉันได้ยึดครองจากผู้พัฒนารายอื่น: if (obj.Performance <= LOW_PERFORMANCE) { obj.NeedsChange = true; } else { obj.NeedsChange = false; } ฉันเชื่อว่ารหัสนี้ซ้ำซ้อนและน่าเกลียดดังนั้นฉันจึงเปลี่ยนเป็นสิ่งที่ฉันคิดว่าเป็นการมอบหมายบูลีนอย่างง่ายจากการเปรียบเทียบ: obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE; เมื่อเห็นสิ่งนี้มีคนกำลังตรวจสอบรหัสของฉันแสดงความคิดเห็นว่าแม้ว่าการเปลี่ยนแปลงของฉันจะถูกต้องตามหน้าที่ แต่อาจทำให้ผู้อื่นดูสับสน เขาเชื่อว่าการใช้ผู้ประกอบการสามคนทำให้การบ้านนี้ชัดเจนยิ่งขึ้นในขณะที่ฉันไม่ชอบการเพิ่มรหัสซ้ำซ้อนเพิ่มเติม: obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false; เหตุผลของเขาคือการทำบางสิ่งด้วยวิธีที่รัดกุมที่สุดนั้นไม่คุ้มค่าถ้ามันทำให้ผู้พัฒนารายอื่นต้องหยุดและไขปริศนาสิ่งที่คุณทำ คำถามจริงที่นี่คือวิธีใดในสามวิธีในการกำหนดค่าให้กับบูลีนobj.NeedsChangeที่ชัดเจนที่สุดและสามารถบำรุงรักษาได้มากที่สุด

2
เป็นไปได้ไหมที่จะกำหนดโอเปอเรเตอร์ bitwise ทั้งหมดโดยใช้ 'bitwise nand' คล้ายกับวิธีบูลลอจิกทั้งหมดที่สามารถสร้างโดยใช้เพียง 'บูลีน nand'?
Nand เป็นที่รู้จักในฐานะประตูตรรกะสากลเพราะมันช่วยให้คุณกำหนดประตูตรรกะแบบบูลอื่น ๆ ทั้งหมด: not(x) = nand(x,x) and(x, y) = not(nand(x, y)) or(x, y) = nand(not(x), not(y)) nor(x, y) = not(or(x, y)) xor(x, y) = nand(nand(a, nand(a, b)), nand(b, nand(a, b))) สิ่งนี้เรียกว่าnand-logicและมักใช้ในคอมพิวเตอร์สมัยใหม่เพราะทรานซิสเตอร์สามารถทำตัวเหมือน nand-gate ฉันสงสัยว่ามันเป็นไปได้ที่จะทำสิ่งที่คล้ายกับการดำเนินงานระดับบิต Can เช่นบิต NAND (bnand) ถูกนำมาใช้ในการกำหนดbnot, bor, band, bnor, bxor? มีการดำเนินการระดับบิตสากล?

5
เหตุใดจึงมีทั้งการลัดวงจรหรือเช่นเดียวกับการเปลี่ยนแปลงที่ไม่ผ่านรอบของตัวดำเนินการนั้นใน C #
ฉันสงสัยเกี่ยวกับสิ่งนี้เป็นระยะ การลัดวงจรหรือจะคืนค่าเดียวกันกับที่ตัวดำเนินการ OR ที่ไม่มีการลัดวงจรหรือ ฉันคาดหวังว่าการลัดวงจรหรือจะประเมินผลเร็วกว่าเสมอ ดังนั้นตัวดำเนินการ OR ที่ไม่มีการลัดวงจรรวมอยู่ในภาษา C # เพื่อความมั่นคงหรือไม่ ฉันพลาดอะไรไป
9 c#  boolean  logic 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.