Is it possible to have a virtual/abstract field in a C# class? If so, how is it done?
A Virtual/Abstract field? No. Fields are just there to hold data. There's nothing to implement.
You can define a Virtual/Abstract Property though.
You can however have virtual or abstract properties:
public abstract string ModelName { get; set; }
No. You'd have to use a property to accomplish what you seem to what to do.