WPF למתקדמים – PropertyChanged המשך..

Friday, January 31, 2014

בפוסט הזה WPF PropertyChangedהדגמנו כמה שיטות למימוש אימפלמנטציה של INotifyPropertyChanged. ישנה דרך נוספת, CallerMemberNameAttribute הוא Attribute שיושב בספריית System.Runtime.CompilerServices ומה שהוא נותן לנו זאת הצצה לשם של מי שמפעיל את הפונקציה, עכשיו זה מאוד פשוט, אם את פונקציית המימוש של PropertyChanged נכתוב בעזרת DefaultParameter נוכל לשלוף את מי שעשה Invoke במינימום טרחה ולהעביר אותו בהתאם כפרמטר לשליחת הEvent שכאמור מצפה ל שם הפרופרטי. קל ופשוט.. אז איך זה נראה? דוגמת קוד: public event PropertyChangedEventHandler PropertyChanged; private void onNotifyPropertyChnaged( string proprtyName = default(string)) { if (PropertyChanged != null) ...
אין תגובות

Marker-Interface c# Attribute

Thursday, December 27, 2012

יצא לנו פעם לבדוק "האם האובייקט הוא IDisposable, Serializable, IEnumerable, DataContract " ?? מה משותף לכולם? ובכן התנהגות או יכולת מסויימת שאני נזקק לה במסגרת התכנית שלי. וזאת הגדרת תבנית העיצוב שנקראת Marker Interface אולם, יש כאן ערבוב של Interface ושל Attribute.. אז?? ובכן זה אותו דבר אם תשאלו את Marker Interface 2 הטכניקות הן הצורות המקובלות להשתמש בתבנית. ומה זה אומר? לספק התנהגות/יכולת משותפת לאובייקטים כדי שמי ששולח/יוצר אותם ומי שמקבל/משתמש בהם יהיה רגוע שיש להם את אותה יכולת/התנהגות. על Interface אין מה להרחיב, על Attribute אולי קצת יותר, כי אחוזי השימוש בו נמוכים משמעותית. קצת רקע: MetaData זה מושג מעולם התוכנה וזה אומר "מידע על המידע" כן, נשמע נורא אני מסכים.. ובכל...
2 תגובות