רחמים, אתה צודק, רק כעת הבנתי את הלוגיקה של C#.
הוא מתייחס לאוסף המפרים המוגבל כמעגלי. הראשון הוא הבא בתור אחרי האחרון ולהפך.
לפי זה המקסימום +1 זה אפס ולא 1. ו-1 זה המקסימום.
זה נראה לי תקין:
Dim n As UShort = (i + (UShort.MaxValue + 1)) Mod (UShort.MaxValue + 1)
ובקשר לVB אתה טועה, הוא סבור בדיוק כמו C#, לפחות אצלי.
עריכה:
כדי להיווכח בהבדל עליך כנראה לשנות משהו בקוד כל שהוא, אחרת הוא לא מקמפל שוב (הוא בודק כנראה שזה כבר מקומפל מפעם קודמת).
פורסם במקור בפורום CODE613 ב09/03/2014 21:18 (+02:00)

