145. Type and Array

ראינו איך אפשר להזריק לטיפוס גנרי את הפרמטרים הגנריים שלו.

נניח שיש לנו Type ואנחנו מעוניינים ליצור ממנו Type אחר המייצג מערך של הType הראשון.

הדרך לעשות זאת היא באמצעות הפונקציה MakeArrayType:

1
2
Type stringType = typeof(string);
Type stringArrayType = stringType.MakeArrayType(); // typeof(string[])

אם אנחנו מעוניינים במערך ממימד גדול יותר, קיים overload שמקבל את המימד:

1
Type string3DArrayType = stringType.MakeArrayType(3); // typeof(string[,,])

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

למשל:

1
2
object stringArray = Array.CreateInstance(typeof (string), 2, 3, 5, 8);
// Like object stringArray = new string[2, 3, 5, 8];

שיהיה סופ"ש טיפוסי טוב!

שתף