שני האופרטורים שזוכים לפחות קרדיט בC# הם האופרטורים >>, <<.
אופרטורים אלה מוכרים לנו משפת C והם בעצם מבצעים פעולות של Shift Left וShift Right.
פעולה זו גורמת לכל הביטים לזוז שמאלה (או ימינה בהתאמה) במספר שצוין, למשל:
|
|
פעולה זו בעצם שקולה להכפלה (או חילוק בהתאמה) ב2 בחזקת המספר שאנחנו מציינים.
למשל בדוגמה הראשונה, התוצאה שקולה להכפלה ב2 בחזקת 2, כלומר ב4.
בדוגמה השנייה, התוצאה שקולה לחילוק ב2 בחזקת 1, כלומר בחילוק ב2.
אפשר לטעון שאופרטורים אלה לא שימושיים ולכן אינם מוכרים.
אלא שיש שימוש נחמד בהם. זוכרים את הטיפ על FlagsAttribute?
בטיפ זה ציינתי שכדי ליצור Enum של Flags צריך לדאוג ידנית שהערכים שלו יהיו חזקות של 2.
אפשר להשתמש באופרטור זה כדי לעשות זאת בצורה אלגנטית:
במקום ככה:
|
|
אפשר לכתוב ככה:
|
|
התוצאה היא אותה תוצאה, רק שזה יוצא טיפה יותר אלגנטי.
בנוסף, בלי קשר לאופרטורים, אפשר לאתחל גם ערכים אחרים בEnum בצורה יפה:
|
|
די יפה.
שבוע עם שיפט לשמאל טוב.