سلام یه موضوع برام خوب جا نیفتاده ما گاهی مجبوریم که یه فیلدی رو پرایوت تعریف کنیم تا توسط متغیرهای دیگه در کلاسهای دیگه دستکاری نشه تا برنامه به مشکل نخوره در حالیکه خب تو همون کلاسها میتونن با متغیرهای پابلیک تعیف شده و متدهای Get , set همون متغیرهای رو تغییر بدن خب چه فرقی میکنه؟ بالاخره که تغییرش میدن که ؟
و اینکه برنامه در کد زیر (تعریف property , field)چطور و با چه منطقی هر دو اینها رو یکی در نظر میگیره یعنی تغییر در متده ی get , set رو روی فیلد پرایوت اعمال میکنه؟ آیا به خاطر روش نامگذاری این اتفاق میفته؟
private static int _id = 1;
public int Id { get; set; }