ValueBase.cs 722 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. namespace Model
  3. {
  4. [Serializable]
  5. public class ValueBase
  6. {
  7. private object value;
  8. public ValueBase(object v)
  9. {
  10. this.value = v;
  11. }
  12. public ValueBase()
  13. {
  14. }
  15. public ValueBase Clone()
  16. {
  17. ValueBase v;
  18. Type vType = this.value.GetType();
  19. if (vType.IsSubclassOf(typeof(Array)))
  20. {
  21. Array sourceArray = (Array) this.value;
  22. Array dest = Array.CreateInstance(vType.GetElementType(), sourceArray.Length);
  23. Array.Copy(sourceArray, dest, dest.Length);
  24. v = new ValueBase(dest);
  25. }
  26. else
  27. {
  28. v = new ValueBase(value);
  29. }
  30. return v;
  31. }
  32. public object GetValue()
  33. {
  34. return this.value;
  35. }
  36. public void SetValue(object v)
  37. {
  38. this.value = v;
  39. }
  40. }
  41. }