245. Attributes and parameters

אחד הדברים שלא כל כך מוכרים הוא העובדה שאפשר לשים Attibute על פרמטר של פונקציה.

זה מתבצע כך:

1
2
3
4
public static bool MyMethod([MyParameter]int x, [MyParameter]int y)
{
// ...
}

הדבר יכול להיות שימושי אם הקריאה לפונקציה היא דינאמית דרך Reflection. לדוגמה, אפשר לציין שם איך לאתחל את הפרמטר לפני הפעלת הפונקציה, איזו וואלידאציה אנחנו רוצים על הפרמטר (למשל שהוא מספר חיובי) וכו’.

לפני שנפעיל פונקציה זו בReflection נוכל לבדוק את הפרמטרים ולהתאים לפי זאת את הקריאה לפונקציה.

בפועל השימושי העיקרי בFeature זה הוא של הFramework. למשל, בMarshaling יש Attribute בשם Out המציין שפרמטר מסוים צריך להסתרלז לפרמטר בחזרה מהפונקציה.

כאמור, השימוש בזה הוא בעיקר בשביל מתודות שמריצים בReflection

סופ"ש בעל סגולה טוב.

שתף