using System.Collections.Generic;
public class MyProp<T> where T : new()
public static implicit operator T(MyProp<T> value)
if (EqualityComparer<MyProp<T>>.Default.Equals(value, default(MyProp<T>)))
value = new MyProp<T> { Value = new T() };
public static implicit operator MyProp<T>(T value)
return new MyProp<T> { Value = value };
public MyProp<List<String>> SomeProperty { get; set; }
public static void Main(string[] args)
SomeClass instance = new SomeClass();
List<String> test = instance.SomeProperty;
Console.WriteLine("sdfasdf");
Console.WriteLine(instance.SomeProperty.ToString());