An array can be static
—this means it is shared among all instances of classes in a program. Each class
reuses the same array.
static
arraysThis pattern is commonly used in C# programs and often useful. Static arrays can reduce allocations, which can improve performance.
To start, we use a static
integer array. The data shown is separate from the state of the object. The list of prime numbers is not affected by state.
static
or constant data like these prime numbers for efficient access and use.class
contains a static
int
array that remains present throughout the lifetime of the program.class
instance.using System; using System.Linq; class Program { static void Main() { // Use the public method to test static array. bool isWagstaff = NumberTest.IsWagstaffPrime(43); Console.WriteLine(isWagstaff); // Test static array again. isWagstaff = NumberTest.IsWagstaffPrime(606); Console.WriteLine(isWagstaff); } } /// <summary> /// Contains static int array example. /// </summary> public static class NumberTest { /// <summary> /// This static array contains several Wagstaff primes. /// </summary> static int[] _primes = { 3, 11, 43, 683, 2731 }; /// <summary> /// Public method to test private static array. /// </summary> public static bool IsWagstaffPrime(int i) { return _primes.Contains(i); } }True False
Here we use a static
string
array to store type-specific information such as an array of dog breeds. This data is constant. It does not need to be frequently changed.
StringTest.Dogs
property. The StringTest
class
contains an array of dog breed strings.using System; class Program { static void Main() { foreach (string dog in StringTest.Dogs) { Console.WriteLine(dog); } } } /// <summary> /// Contains static string array. /// </summary> public static class StringTest { /// <summary> /// Array of dog breeds. /// </summary> static string[] _dogs = new string[] { "schnauzer", "shih tzu", "shar pei", "russian spaniel" }; /// <summary> /// Get array of dog breeds publicly. /// </summary> public static string[] Dogs { get { return _dogs; } } }schnauzer shih tzu shar pei russian spaniel
List
A static
List
can store a variable number of elements in one location. The code can be used for much larger collections, and collections of varying sizes.
ArrayPool
An ArrayPool
can make the reuse of arrays more powerful—we can specify minimum lengths required. And we can "rent" arrays to reduce conflicts.
We used static
data structures such as int
arrays and string
arrays. These static
collections are useful to access data that doesn't depend on an instance.