376. Missing Value

בהמשך לפעם שעברה,

נניח שיש לנו מתודה עם ערכים דיפולטיים:

1
2
3
4
public static int MyMethod(int number, string name = "Berry Sakaroff", DateTime date = default(DateTime))
{
//
}

ואנחנו רוצים להריץ אותה בReflection עם חלק מהערכים.

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

דרך נחמדה אחרת היא באמצעות משהו שנקרא Missing.Value: פשוט נעביר אותו בתור כל הפרמטרים שאנחנו לא מעוניינים לציין:

1
2
3
4
5
6
7
MethodInfo method =
typeof (MethodType).GetMethod("MyMethod", BindingFlags.Public | BindingFlags.Static);
object value =
method.Invoke(null, new object[] {3, Missing.Value, DateTime.Now});
// MyMethod(3, "Berry Sakaroff", DateTime.Now)

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

המשך יום דיפולטי טוב.

שתף