I accidently came across this situation that I want to mention because it could lead to some unusual behavior (unexpected errors) in people's code.
I have a VB.net program in which I was reading an NV of type array of int16. The read happend correctly. The code then modified one of the elements in the array and wrote the array back. HOWEVER, I wrote the wrong type back (my NVWriter was of type double). Instead of writing an array of int16, I accidently wrote a double. The write generated an excepption but seems to have taken place anyway because VarManager now displayed this NV as type double. What's more interesting is that subsequent reads of this variable failed because I was trying to read an array of int16 and apparently the system now thinks this variable is of type double.
I fixed the problem by correcting the code to write the proper type (array of int16). I got a few errors (I'm guessing because now the system (NV Engine?) thinks the var is a double... but again, the writes were accepted and I was eventually able to get the variable into its proper type.
This should be reproducible (if anyone is inclined to try). I'd be ineterestd in knowing if this is unique to my situation or not.
Thanks
-Steve