public static void Main()
var obj = new PropertyFieldModel<int>();
var ConstField = obj.GetPropertyOrField("ConstField");
var StaticProperty = obj.GetPropertyOrField("StaticProperty");
var VirtualProperty = obj.GetPropertyOrField("VirtualProperty");
Console.WriteLine(ConstField.GetDeclaraction());
Console.WriteLine(StaticProperty.GetDeclaraction());
Console.WriteLine(VirtualProperty.GetDeclaraction());
public class PropertyFieldModel<T>
public const int ConstField = 1;
public static int StaticField;
public readonly int ReadOnlyField = 1;
public volatile int VolatileField = 1;
public static int StaticProperty { get; set; }
public virtual int VirtualProperty { get; set; }
internal int InternalProperty { get; set; }
private int PrivateProperty { get; set; }