Browse Source

Updated Utilities

Tal Aloni 6 years ago
parent
commit
80f6a3e0f7
2 changed files with 37 additions and 0 deletions
  1. 36 0
      Utilities/Generics/Reference.cs
  2. 1 0
      Utilities/Utilities.csproj

+ 36 - 0
Utilities/Generics/Reference.cs

@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+
+namespace Utilities
+{
+    public class Reference<T> where T : struct
+    {
+        T m_value;
+
+        public Reference(T value)
+        {
+            m_value = value;
+        }
+
+        public T Value
+        {
+            get { return m_value; }
+            set { m_value = value; }
+        }
+
+        public override string ToString()
+        {
+            return m_value.ToString();
+        }
+
+        public static implicit operator T(Reference<T> wrapper)
+        {
+            return wrapper.Value;
+        }
+
+        public static implicit operator Reference<T>(T value)
+        {
+            return new Reference<T>(value);
+        }
+    }
+}

+ 1 - 0
Utilities/Utilities.csproj

@@ -46,6 +46,7 @@
     <Compile Include="Generics\BlockingQueue.cs" />
     <Compile Include="Generics\KeyValuePairList.cs" />
     <Compile Include="Generics\Map.cs" />
+    <Compile Include="Generics\Reference.cs" />
     <Compile Include="Generics\SortedList.cs" />
     <Compile Include="IFileSystem\FileSystem.cs" />
     <Compile Include="IFileSystem\FileSystemEntry.cs" />