כיצד להשתמש איפה (אילוץ סוג כללי)

Kyzd Lhstms Yph Ylwz Swg Klly



אילוצי טיפוס גנריים ב-C# מאפשרים למפתחים להגדיר את קבוצת הסוגים שפרמטר סוג גנרי יכול לייצג. תכונה זו מאפשרת למהדר לאכוף בטיחות סוג ומונעת שגיאות שעלולות להתרחש בזמן ריצה. אחד האילוצים הנפוצים ביותר הוא 'איפה' אילוץ, מאמר זה יסביר מה 'איפה' אילוץ הוא ב-C# וכיצד להשתמש בו בקוד שלך.

מהו אילוץ ה'איפה'.

ה 'איפה' constraint הוא אילוץ סוג גנרי ב-C# המאפשר למפתחים לציין את פרמטר הסוג שסוג גנרי יכול לייצג. האילוץ מצוין באמצעות ה- 'איפה' מילת מפתח ואחריה פרמטר הסוג והאילוץ, התחביר לשימוש ב- 'איפה' ההגבלה היא כדלקמן:

מחלקה ציבורית ClassName < ט > איפה ט : אילוץ

{

// יישום בכיתה

}

הנה ה 'שם כיתה' מייצג את שם המחלקה עם פרמטר סוג גנרי 'T' . ה 'איפה' מילת מפתח מציינת את האילוץ עבור פרמטר הסוג, ואת 'אילוץ' הוא הסוג שפרמטר הסוג חייב לייצג.







ניקח דוגמה למחלקה גנרית שמקבלת פרמטר סוג ומחזירה את הערך המינימלי ממערך ערכים. כאן הקוד משתמש ב- 'איפה' אילוץ כדי לציין שפרמטר הסוג חייב להיות סוג מספרי:



באמצעות System ;

MinValue של כיתה ציבורית < ט > איפה ט : struct , ניתן להשוות , IConvertible

{

הציבור T GetMinValue ( ט [ ] מַעֲרָך )

{

אם ( מַעֲרָך == ריק || מַעֲרָך. אורך == 0 ) {

לזרוק ArgumentException חדש ( 'מערך לא יכול להיות ריק או ריק' ) ;

}

ט דקות = מַעֲרָך [ 0 ] ;

ל ( int אני = 1 ; אני < מַעֲרָך. אורך ; אני ++ ) {

אם ( מַעֲרָך [ אני ] . בהשוואה ל ( דקה ) < 0 ) {

דקה = מַעֲרָך [ אני ] ;

}

}

לַחֲזוֹר דקה ;

}

}

תוכנית כיתה ציבורית

{

פּוּמְבֵּי סטָטִי בָּטֵל רָאשִׁי ( )

{

int [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;

MinValue < int > intMinValue = MinValue חדש < int > ( ) ;

int intMin = intMinValue. GetMinValue ( intArray ) ;

לְנַחֵם. WriteLine ( 'ערך מינימלי של inArray: {0}' , intMin ) ;

לְהַכפִּיל [ ] doubleArray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;

MinValue < לְהַכפִּיל > doubleMinValue = MinValue חדש < לְהַכפִּיל > ( ) ;

לְהַכפִּיל doubleMin = doubleMinValue. GetMinValue ( doubleArray ) ;

לְנַחֵם. WriteLine ( 'ערך מינימלי של doubleArray: {0}' , doubleMin ) ;

}

}

כאן, הגדרנו מחלקה גנרית 'ערך מינימלי' שמקבל פרמטר סוג 'T' ומחזירה את הערך המינימלי ממערך ערכים. לאחר מכן, השתמשנו ב- 'איפה' אילוץ כדי לציין שפרמטר הסוג חייב להיות struct, ליישם את ממשק IComparable ולהטמיע את ממשק IConvertible. אילוץ זה מבטיח שרק סוגים מספריים מותרים כפרמטרי טיפוס.



  צורה, מלבן תיאור נוצר באופן אוטומטי





סיכום

ה 'איפה' אילוץ ב-C# הוא תכונה רבת עוצמה המאפשרת למפתחים לאכוף בטיחות סוגים ולמנוע שגיאות בזמן ריצה. באמצעות אילוץ זה, תוכל לציין את קבוצת הסוגים שפרמטר סוג גנרי יכול לייצג. מאמר זה סיפק סקירה כללית של 'איפה' אילוץ ב-C# והדגים כיצד להשתמש בו עם קוד.