These 4 classes do the same but can someone explain why should you use one instead of theother?
public class MyClass
{
    public string MyString { get; set; }
}
public class MyClass
{
    public string MyString;
}
public class MyClass
{
    private string _mystring;
    public string MyString
    {
      get { return (string)GetValue(_mystring); }
      set { SetValue(_mystring, value); }
    }
}
public class MyClass
{
    private string _mystring;
    public string MyString
    {
        get { return _mystring; }
        set { _mystring = value; }
    }
}
I can interface any of them with
MyClass m=new MyClass();
m.MyString="test";
Is it personal coding preference or is there a reason for each?
 
     
    