|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Thread Safety of static Array used as lookup tableHi all,
Is the follow construct thread safe to access via indexer? public static readonly string [] GradeLookupTable = new string[] { "*","PK","K","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","HS","UG" }; Usage: string grade = GradeLookupTable[12]; Thanks for your help! > Is the follow construct thread safe to access via indexer? But you should know that setting the field as readonly doesnt mean thatYes the values of the array cannot be altered. The following code will change the value of the element at index 2: GrageLookupTable[2] = "Test"; To make it truly readonly, make the field a property and return a clone of the array so that no one can change the original values of the array: public static Grades { get {return GradeLookupTable.Clone() as string[];} } - NuTcAsE NuTcAsE <rao.rit***@gmail.com> wrote:
Show quote > > Is the follow construct thread safe to access via indexer? Or preferrably provide a property which provides a read-only view on > Yes > > But you should know that setting the field as readonly doesnt mean that > the values of the array cannot be altered. The following code will > change the value of the element at index 2: > > GrageLookupTable[2] = "Test"; > > To make it truly readonly, make the field a property and return a clone > of the array so that no one can change the original values of the > array: > > public static Grades { > get {return GradeLookupTable.Clone() as string[];} > } the array - you don't really want to create a new copy of the array every time you access the property. -- Jon Skeet - <sk***@pobox.com> http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet If replying to the group, please do not mail me too |
|||||||||||||||||||||||