PDA

View Full Version : سوال: انتقال مقادیر متغیرها از فرم کمکی به اصلی



ebrahimi2006
یک شنبه 12 مهر 1388, 19:11 عصر
با سلام و خسته نباشید
من چند تا فرم طراحی کردم و میخوام اطلاعات فرم کمکی رو روی فرم اصلی بیارم و موقع بستن فرم کمکی اطلاعات اون در text box های فرم اصلی قابل مشاهده باشد و قسمت های غیر قابل تغییر فرم اصلی مقدار قبلی خودشونو داشته باشند.و نمیخوام فرم اصلی رو بعنوان یک شی برا فرم کمکی تعریف کنم.

saed2006
یک شنبه 12 مهر 1388, 19:15 عصر
متغییر رو از نوع public static تعریف کنید

اَرژنگ
یک شنبه 12 مهر 1388, 20:22 عصر
متغییر رو از نوع public static تعریف کنید
این روش اشتباه را نباید ترویج کرد، بارها در تالار بحث شده.و لطفا منبع این روش اشتباه را کجا دیدید هم بفرمائید، دنبال ریشه این روش اشتباه میگردم که از بیخ درش بیارم.

یک روش ساده که از جواب یکی از مدیرهایه این تالار گرفته شده و یکمی برایه کارایی بیشتر تغییرش دادم.
نشان میده که چطوری از یک رکورد بیشتر را از دیتا گرید ویو انتخواب کنیم و در فرم کلاینت بهشان دستیابی داشته باشیم.
این حداقل استانداردی هست که باید رعایت بشه، از این جواب بهتر هم فرستاده شده بود ولی برایه شروع از این مثال ساده‌تر نمیشه.

Himalaya
دوشنبه 13 مهر 1388, 13:34 عصر
if (Application.OpenForms["form name"] != null)
Application.OpenForms["form name"].Controls[0].Text = "value";

البته میدونم که الان اَرژنگ (http://barnamenevis.org/forum/member.php?u=13535) میگه که آقا غیر استاندارده... ولی با این حال همینیه که هست :لبخند:

[/CODE]

اَرژنگ
دوشنبه 13 مهر 1388, 13:45 عصر
if (Application.OpenForms["form name"] != null)
Application.OpenForms["form name"].Controls[0].Text = "value";
البته میدونم که الان اَرژنگ (http://barnamenevis.org/forum/member.php?u=13535) میگه که آقا غیر استاندارده... ولی با این حال همینیه که هست :لبخند:

[/code]

نه ، این روش حتی از خارج استاندارد بودن و شکستن چندتا اصول هم بدتره.
و اصلا همین که هست درست نیست، مثل این میماند که پیستون ماشین را چوبی درست کنیم! وابستگیها و کمبودهایی که دارد این را اصلا نمیشه روش حساب کرد.یک نوع سمبل کردن بیشتر نمیشه بهش گفت.
چرا وقتی که مثال با روش اصول درست هست، روشهایه اشتباه را نشان بدیم؟:گیج:

یک اشکال دیگر این روش، کاربرد نداشتنش است، این فقط در یک حالت بخصوص جواب به‌حساب میاد، وقتی که روش میتونیم با بولدوزر زمین بکنیم چرا با بیل کار کنیم؟

Himalaya
دوشنبه 13 مهر 1388, 14:25 عصر
نه ، این روش حتی از خارج استاندارد بودن و شکستن چندتا اصول هم بدتره.
و اصلا همین که هست درست نیست، مثل این میماند که پیستون ماشین را چوبی درست کنیم! وابستگیها و کمبودهایی که دارد این را اصلا نمیشه روش حساب کرد.یک نوع سمبل کردن بیشتر نمیشه بهش گفت.
چرا وقتی که مثال با روش اصول درست هست، روشهایه اشتباه را نشان بدیم؟:گیج:

یک اشکال دیگر این روش، کاربرد نداشتنش است، این فقط در یک حالت بخصوص جواب به‌حساب میاد، وقتی که روش میتونیم با بولدوزر زمین بکنیم چرا با بیل کار کنیم؟


وقتی یه نفر یه مطلبی مینویسه دیدم که شما خیلی سریع میگید که این استاندارد نیست و از این جور چیزها... میخوام بهتون بگم که تشخیص استاندارد بودن چیزی نه به عهده شماست و نه من... بسته به کاربرد طرف داره ... میگید این کد استاندارد نیست ... خوب رو هوا که نمیشه حرف زد ... مطمئنا اگه استاندارد نبود خود ماکروسافت یه فکری براش میکرد ... دلیل بیارید که استاندارد نیست اونوقت شاید منم رفتم سراغ کدهای فوق العاده استاندارد شما ... (شما مثل اینکه خیلی به کدهاتون ایمان دارید)



وقتی که روش میتونیم با بولدوزر زمین بکنیم چرا با بیل کار کنیم؟


واسه کندن یه گودال کوچیک برای تیله بازی از بولدوزر استفاده نمیکنن...حتی بیل هم براش بزرگه



اگر لحن این پست مورد پسند شما نیست، بدانه کم کردن از اطلاعات اراعه داده شده، این پست را به شکلی که لحنش مورد پسند خودتان باشد ویرایش کنید به شکل پی‌ام با یک لینک به این پست به من ارصال کنید، اسم شما را با تشکر از ویرایشتان با متن ویرایش شده جایگزین این پست خواهم نمود.
لطفا در ذهنتان این پست را با صدایه یک دوست که برایه ترقی شما اشکال میگره بخوانید، اشکال از روشها نه از شما!
مخلصیم:لبخندساده:


اصلا دلیل خوبی برای زیر سوال بردن بقیه نیست

اَرژنگ
دوشنبه 13 مهر 1388, 15:35 عصر
وقتی یه نفر یه مطلبی مینویسه دیدم که شما خیلی سریع میگید که این استاندارد نیست و از این جور چیزها... میخوام بهتون بگم که تشخیص استاندارد بودن چیزی نه به عهده شماست و نه من... بسته به کاربرد طرف داره ... میگید این کد استاندارد نیست ... خوب رو هوا که نمیشه حرف زد ... مطمئنا اگه استاندارد نبود خود ماکروسافت یه فکری براش میکرد ... دلیل بیارید که استاندارد نیست اونوقت شاید منم رفتم سراغ کدهای فوق العاده استاندارد شما ... (شما مثل اینکه خیلی به کدهاتون ایمان دارید)


روش درست را گفتن عهده من و شما نیست؟ ما که برنامه‌نویس هستیم و یک چیزی نگیم کی میخواهد بگه؟ بزاریم که یکی در مرکب جهل همانطوری بماند؟ اگر میدونیم وظیفه داریم که راهنمائی کنیم ، و جلویه اشتباه بقیه رو بگیریم.

درست میگید، رو هوا نمیشه حرف زد، دلایل اشکال روشی که بهش ایراد گرفتم:
۱.بالا بردن وابستگی (Coupling).
۲.پخش کردن منطق کد در جایی که ربط ندارد
۳.استفاده بیخود از شرط و شرائط که ببینیم که یک فرم که ربطی به استفاده ندارد نول هستن یا نه.
۴.سفت کد کردن استفاده کننده فرم
اینها اصولی هستند که در ابتدائیترین کورس برنامه ریزی یاد داده میشن، مگر برنامه‌نویسی کار هرکسی است که بتونه if, for , while بداند؟

منطق اینکه اگر درست نبود مایکراسفت جلوش را میگرفت درست نیست، کدام شرکتی میشناسید که برایه جلوگیری از سواستفاده از ساخته‌هاش کاری انجام بده؟ مایکراسافت تپانچه را ساخته، میده دست هرکی ، یکی باهاش شکار میکنه، یکی باهاش گوله میزنه تو پایه خودش و به بقیه هم میگه از روشش پیروی کنند.

در مورد اینکه به کدم ایمان دارم:
۱.این فقط کد من نیست، حداقل کتابها مطالعه کردم، به کار برنامه‌نویسهایه که فارغ‌العاده بررسی کردم، و بعد از همه اینها به این نتیجه رسیدم
شما در مورد این روش که هیچ اعتباری ندارد از کجا منبع دارید؟ در چند تا کتاب و یا مجله برنامه‌نویسی خواندید و یا کدام برنامه‌نویسی که در یک شرکت معتبر کار میکند وبلاگش را خواندید؟

بله که به این کد ایمان دارم، از کار بهترین برنامه‌نویسها گرفته شده، ساعتها تفکرات روش صرف شده، و اینکه ازش استفاده نشه باعث میشه که برنامه‌نویسهایه درجه دومی که کد تایپ میکنند و در مورد اصول هیچ خبری ندارند و یا اینکه میدانند و از بی ‌دیسیپلین بودن استفاده نمیکنند بوجود بیاند را دیدم. همینکه یکی یک داتاگرید بندازه به فرم و چند تا کلیک کنه حرفه نیست.




واسه کندن یه گودال کوچیک برای تیله بازی از بولدوزر استفاده نمیکنن...حتی بیل هم براش بزرگه


منتها در برنامه نویسی تیله بازی نیست، روش حرفه‌ای هست و روشها من در آوردی بی اساس.
یکی که طبابت نمیودونه حق نداره مریض درمان کنه، کسی هم که اصول برنامه‌نویسی را اهمیت ندارد حق ندارد روش اشتباه ترویج کنه.




اصلا دلیل خوبی برای زیر سوال بردن بقیه نیست
من کسی را زیره سوال نبردم، اینکه روش اشتباه را به شخصی بگیریم بی معنی است. روش اشتباه ، اشتباه است، به آسونی هم میشه اثباتش کرد، احتیاجی به اینکه شخصیش کنیم نیست. روش و استفاده کننده از روش ۲ تا چیز جدا هستند، هرکی میتونه راه درست را استفاده کند. منتها وقتی که یکی نمیدونه و مپرسه به راه اشتباه هدایت کردنش درست است؟
وقتی که جواب میدیم، باید فرض کنیم این بابایی که این سوال را پرسیده، یک روزی میخواهد در یک شرکت معتبر کار بگیره، یک همچین کدی از یک برنامه‌نویس ببینند هیچ جایی راهش نمیدند.

اگر هنوز به اشکالات این روش قانع نیستید، یک برنامه‌نویس معتبر که حداقل یک خوبی ازش را بگه پیدا کنید ما هم یک چیزی یاد بگیریم.

Himalaya
دوشنبه 13 مهر 1388, 16:43 عصر
درست میگید، رو هوا نمیشه حرف زد، دلایل اشکال روشی که بهش ایراد گرفتم:
۱.بالا بردن وابستگی (Coupling).
۲.پخش کردن منطق کد در جایی که ربط ندارد
۳.استفاده بیخود از شرط و شرائط که ببینیم که یک فرم که ربطی به استفاده ندارد نول هستن یا نه.
۴.سفت کد کردن استفاده کننده فرم
اینها اصولی هستند که در ابتدائیترین کورس برنامه ریزی یاد داده میشن، مگر برنامه‌نویسی کار هرکسی است که بتونه if, for , while بداند؟


این چیزایی که گفتی یه سری حرف کلیه...
1. چه وایستگی منظورته...یا وارد جزئیاتش شو یا اصلا حرفشو نزن
2.شما تو فرم 2 خودت کلی کد نوشتی اونوقت به 2 خطی که من نوشتم میتوپی که کد رو تو جایی که بهش ربط نداره نوشتم؟؟
3.اگه اون if رو هم بردارم که اونوقت کل کدهای من میشه 1 خط و واسه شما... وضعتون بدتر میشه...حالا شما خودت اون if رو ندید بگیر
4.منظورتو از 4 نفهمیدم (سفت کردن) شایدم به قول شما به خاطر اینه که خیلی مبتدی هستم:متفکر:
پس به نظر شما هر کی while,if,for رو بدونه میشه یه برنامه نویس تمام عیار؟؟؟
الان دیگه این چیزا رو تو دبیرستانا یاد بچه ها میدن...
به هر حال این که من از کجا خوندم یا دیدم که این یه روش استاندارده یا نه مهم نیست... این که کدوم برنامه نویس حرفه ای هم از این روش استفاده کرده که دیگه اصلا مهم نیست... چون حداقل برای من معنی نداره که چون فلانی از این کد استفاده کرده پس من هم باید از اون استفاده کنم...
ببین تا وقتی که این کد کاری رو که میخوام برام انجام میده، بدون اینکه کوچکترین مشکلی برام پیش بیاره اصلا دلیلی نداره که از روش دیگه ای که همین کار رو (نه بیشتر) برام انجام میده استفاده کنم ...
البته یادگیری روشهای مختلف برای حل یه مسئله یه چیزه که خوب اینو قبول دارم و استفاده های سلیقه ای از هر کدوم تو پروژه های مختلف یه چیز دیگه
همش میخوام بگم این کدیه که خیلی از نیاز های منو (البته واسه پاس دادن مقدار بین 2 فرم)
بر طرف کرده (بدون اینکه هیچ مشکلی برام پیش بیاره)...ولی میدونم که بعدش میخوای بگی ، آهان پس تو چون این کد برات جواب داده نمیخوای بری سراغ یه چیز دیگه... هر چند غیر استاندارد باشه ... شاید یه دلیلش این باشه

اَرژنگ
دوشنبه 13 مهر 1388, 17:13 عصر
این چیزایی که گفتی یه سری حرف کلیه...

به این کلیات میگن اصول برنامه‌نویسی، کتاب مهندسی نرم افزار را نگاه بنداز، بعد به هر کی که چیزی که برات مانند روز واضحه اشکال میگیری


1. چه وایستگی منظورته...یا وارد جزئیاتش شو یا اصلا حرفشو نزن

کتاب مهندسی نرم افزار Coupling


2.شما تو فرم 2 خودت کلی کد نوشتی اونوقت به 2 خطی که من نوشتم میتوپی که کد رو تو جایی که بهش ربط نداره نوشتم؟؟

استفاده کننده از کد را هارد کد Hard Code (سفت کدش کردید)، مگر بیل باید از زمان ساخته شدن نام بکار برنده را بدانه؟
کلی کد در فرم ۲ منطق را یکجا جمع کرده، از فرمی که استفاده میکندش خبر ندارد، Decouple شده، ۱۰۰ تا جایه دیگه هم میتونند از همین فرم استفاده کنند.
بدانه اینکه ۱۰۰ تا if دیگر اضافه کنیم، اگر استفاده‌شان عوض بشه فقط در همانجا کد قطع میشه.


3.اگه اون if رو هم بردارم که اونوقت کل کدهای من میشه 1 خط و واسه شما... وضعتون بدتر میشه...حالا شما خودت اون if رو ندید بگیر
4.منظورتو از 4 نفهمیدم (سفت کردن) شایدم به قول شما به خاطر اینه که خیلی مبتدی هستم:متفکر:

مبتدی یا غیره مبتدی فرق ندارد، Hard Coding را همه جا (معتبر) یاد میدند که ازش دوری کنند.



پس به نظر شما هر کی while,if,for رو بدونه میشه یه برنامه نویس تمام عیار؟؟؟
الان دیگه این چیزا رو تو دبیرستانا یاد بچه ها میدن...


منظورم بر عکس بود، دانستنشان یکی را برنامه‌نویس نمیکنه، هر چی روش استفاده دارد، مهندسی نرم افزار با کد سرهم کردن و با اصول کار است، نه اینکه if, while, for .. بدونه اصول استفاده کردن.


به هر حال این که من از کجا خوندم یا دیدم که این یه روش استاندارده یا نه مهم نیست... این که کدوم برنامه نویس حرفه ای هم از این روش استفاده کرده که دیگه اصلا مهم نیست... چون حداقل برای من معنی نداره که چون فلانی از این کد استفاده کرده پس من هم باید از اون استفاده کنم...


نه مهم نیست که یکی خودش از چه کاری استفاده میکنه، ولی راهنمائی دیگران از کاری که معتبر بودنش را نمیدانه و هیچ جایه معتبری را سراغ ندارد درست نیست. پس فرق بین یک روش مهندسی و یک روش من در آوردی چیه؟ هر دو یکی هستند؟
وقتی که یکی یک سوال میپرسه، باید با تفکر و منطق جواب داد. پس هرکی که بلده جمع بزنه میتونه به یک شاگرد ریاضی جواب بده؟




ببین تا وقتی که این کد کاری رو که میخوام برام انجام میده، بدون اینکه کوچکترین مشکلی برام پیش بیاره اصلا دلیلی نداره که از روش دیگه ای که همین کار رو (نه بیشتر) برام انجام میده استفاده کنم ...
البته یادگیری روشهای مختلف برای حل یه مسئله یه چیزه که خوب اینو قبول دارم و استفاده های سلیقه ای از هر کدوم تو پروژه های مختلف یه چیز دیگه
همش میخوام بگم این کدیه که خیلی از نیاز های منو (البته واسه پاس دادن مقدار بین 2 فرم)
بر طرف کرده (بدون اینکه هیچ مشکلی برام پیش بیاره)...ولی میدونم که بعدش میخوای بگی ، آهان پس تو چون این کد برات جواب داده نمیخوای بری سراغ یه چیز دیگه... هر چند غیر استاندارد باشه ... شاید یه دلیلش این باشه

۱.چیزی به اسمه پاس دادن بین ۲ فرم نیست، در مهندسی نرم افزار به این میگن مساج فرستادن بین ۲ شئی.
اینکه یک چیزی کار را حل میکنه اتمام نمیشه، شمع هم نور میده، پس چرا دیگر کسی از شمع استفاده نمیکنه، هر وقت که یکی برنامه‌بنویسه باید مطالعه کنه، روشهایی را که استفاده میکنه بسنجه، اشکالات یا اینکه چی را میشه چجوری بهتر کرد پژوهش کنه.
ولی روشی کمتر از بهتر را به بقیه نباید یاد داد،
و اگر به دیگران راه بهتر را یاد بدیم، خودمان هم استفاده نکنیم؟

اگر فکر کنیم که دیگر جایی برایه پیشرفتمان نمانده پس به آخر خط رسیده‌ایم، به جایه قانع بودن که همین که میدونم کافیه، همیشه باید برایه یاد گیری خودمان را با زور هم که شده پیش بریم.
اگر خودمان نمیخواهیم یاد بگیریم لااقل بقیه را به کورراه هدایت نکنیم.

corona
دوشنبه 13 مهر 1388, 17:29 عصر
ارژنگ جان ، منم همیشه تا حالا اگه جایی لازم داشتم از متغییر های یک فرم توی فرم دیگه استفاده کنم مثل دوستمون karaji333 (http://barnamenevis.org/forum/member.php?u=53563) متغییر ها رو یا Public static می کردم یا اینکه یک رفرنس از فرمم رو به فرم دیگه پاس می دادم با اینکه مطمئن بودم با این کار دارم کلا شی گرایی رو زیر سوال می برم ولی خوب چون راه دیگه ای یاد نداشتم چاره ای نداشتم ، راهت رو دیدم خیلی خوشم اومد با این کد شما دیگه کاملا Encapsulation رعایت میشه .اگه راههای دیگه ای هم برای parameter passing بین فرم ها داری بی نصیب نزار ما رو . در ضمن یک سوال ، دلیل اینکه تو کلاس SuperHero یک سازنده پرایویت تعریف کردی چیه ؟

اَرژنگ
دوشنبه 13 مهر 1388, 17:32 عصر
ارژنگ جان دلیل اینکه تو کلاس SuperHero یک سازنده پرایویت تعریف کردی چیه ؟

جلویه اینکه یک چیزه بیمقدار را بشه اینستنس کرد را بگیرم. مانند پیاده کردن منطق اینکه هر SuperHero باید مقدار داشته باشه و جایی یک مقدار خالی ساخته و استفاده نشه.

Saeed.Masoumi
دوشنبه 13 مهر 1388, 17:53 عصر
والا خود منم زیاد پایبند اصول برنامه نویسی نیستم ولی این حرف رو کاملا قبول دارم که اگه روشی وجود داره که کاری که من می کنم رو از راه درست تر و بهتری انجام می ده چرا از روش جدید استفاده نکنم؟
برای متغییر های سراسر خیلی بحث شده هم اینجا و هم در فروم های دیگه
مثلا اسم این لینک هم نشون می ده چقدر قضیه مهمه
[/URL][URL]http://c2.com/cgi/wiki?GlobalVariablesAreBad (http://c2.com/cgi/wiki?GlobalVariablesAreBad)

اَرژنگ
دوشنبه 13 مهر 1388, 17:57 عصر
اگه راههای دیگه ای هم برای parameter passing بین فرم ها داری بی نصیب نزار ما رو


نداشته باشم هم اگر مشکلی را که در نظر دارید بیان کنید یک روش پیدا میکنم.
فقط یک سوال، این روش قابلیت اینکه یک لیست پارامتر را پس کند دارد، تا جایی که میدونستم جامع درستش کردم، ولی اگر حالتی دیگری در نظر دارید که به کار نمیاد من خوشحال میشم که بدونم
اصل روش را از یک از مدیرهایه همینجا دیدم، حداقل ۱۲سال میشد که به دنبال همچین چیزی بودم (قبل از سی‌شارپ در دلفی).

corona
دوشنبه 13 مهر 1388, 22:10 عصر
جلویه اینکه یک چیزه بیمقدار را بشه اینستنس کرد را بگیرم. مانند پیاده کردن منطق اینکه هر SuperHero باید مقدار داشته باشه و جایی یک مقدار خالی ساخته و استفاده نشه.

ارژنگ جان نمیدونم منظورت رو از این دلیلی که گفتی درست برداشت کردم یا نه ولی اگه منظورت از چیز بی مقدار یک شی هستش که برای فیلد هاش مقدار دهی نشه ،خوب بدون اون سازنده خصوصی هم نمیشه همچین شی ای ساخت . اصلا اون سازنده خصوصی رو که کسی نمیتونه فراخونی کنه بیرون کلاس ما ؟ من نمیدونم شاید منظورت رو درست نفهمیدم ؟ لطف کن بیشتر توضیح بده .

اَرژنگ
سه شنبه 14 مهر 1388, 05:50 صبح
ارژنگ جان نمیدونم منظورت رو از این دلیلی که گفتی درست برداشت کردم یا نه ولی اگه منظورت از چیز بی مقدار یک شی هستش که برای فیلد هاش مقدار دهی نشه ،خوب بدون اون سازنده خصوصی هم نمیشه همچین شی ای ساخت . اصلا اون سازنده خصوصی رو که کسی نمیتونه فراخونی کنه بیرون کلاس ما ؟ من نمیدونم شاید منظورت رو درست نفهمیدم ؟ لطف کن بیشتر توضیح بده .

بله برداشتتان درست هست. به این شکل استفاده کننده‌هایه کلاس مجبور هستند که حتما در زمان نمونه ساختن مقدار دهی کنند. در مورد اینکه اگر سازنده تعریف نکنیم: http://msdn.microsoft.com/en-us/library/ace5hbzh.aspx میگه که اگر سازنده تعریف نکنیم، یک سازنده برامون تعریف میکنه. و اینکه سازنده بدونه پارامتر را پرایوت کردیم باعث میشه که : ۱.هر کی که به کد نگاه کنه، نیت ما را صراحتاً ببینه، و جایی برایه شبهه نماند. فرض کنیم که ما قوانین سی‌شارپ را خوب میدونیم، و اگر یک متد سازنده بدونه پارامتر تعریف نکنیم یکی دیگر که به کد نگاه بندازه ممکنه که فکر کنه که ما یادمان رفته و یا اینکه همینطوری بخواهد یک سازنده اضافه کنه، ولی با دیدن اینکه سازنده صراحتا اعلام شده بود و پرایوت بودنش را ببینه، قبل از تغییر کد یکمی به این موضوع فکر میکنه.

corona
سه شنبه 14 مهر 1388, 11:37 صبح
حرف شما درست و اینم میدونم که اگه سازنده پارامتر دارتعریف کنی دیگه default constructor وجود نداره ویاید explicitly تعریف بشه . ولی خوب این جمله شما که میگی


کاربر مجبور میشه مقدار دهی کنه موقع ساخت

این اجبار هیچ ربطی به اون سازنده private شما نداره و این الزام رو اون به وجود نمیاره . ولی این که میگین استفاده کننده کد یعنی کسی که کد رو میبینه فکر نکنه ما سازنده پیش فرض یادمون رقته ، یعنی منظور شما اینکه ما هر کاری که تو کد کردیم باید به یک نحوی نشون بدیم که مثلا همه حالات مد نظرمون بوده ؟
اینجوری فقط یک مشت کد بی استفاده مجبور میشیم به برناممون اضافه کنیم .

اَرژنگ
سه شنبه 14 مهر 1388, 12:31 عصر
حرف شما درست و اینم میدونم که اگه سازنده پارامتر دارتعریف کنی دیگه default constructor وجود نداره ویاید explicitly تعریف بشه . ولی خوب این جمله شما که میگی

این اجبار هیچ ربطی به اون سازنده private شما نداره و این الزام رو اون به وجود نمیاره . ولی این که میگین استفاده کننده کد یعنی کسی که کد رو میبینه فکر نکنه ما سازنده پیش فرض یادمون رقته ، یعنی منظور شما اینکه ما هر کاری که تو کد کردیم باید به یک نحوی نشون بدیم که مثلا همه حالات مد نظرمون بوده ؟
اینجوری فقط یک مشت کد بی استفاده مجبور میشیم به برناممون اضافه کنیم .

ببخشید،
در این مورد منظور از کاربر، استفاده کننده از کد هستش، مثل یک برنامه نویس دیگر.
استفاده همه کدها در اینکه در برنامه کاری انجام بدند نیستند، بلکه برایه صراحت هم کد نوشته میشه.
معمولا یک کامنت در این پرایوت کنستراکتر میگزارند که به برنامه نویس دیگری که این کد را ببینه یک هشداری باشه که یک کنستراکتر پابلیک اضافه نکند.
اینکه برایه صراحت کارهایی که انجام میدیم و با اینکه برایه برنامه کاربرد نداشته باشد بنویسیم بستگی به سلیقه است.
اگر شما دوست ندارید، ورش دارید، ولی من دوست دارم که اگر برنامه نویس دیگر دیدش بدانه که قصد ،استفاده نشدن از سازنده بی‌پارامتر بوده. (سلیقه‌ای)
یا هم قبل از اینکه یک سازنده بدانه پارامتر اضافه کنه، یک لحظه تامل کنه که چرا ما عمداً نخواسته‌ایم که سازنده بدانه پارامتر در دست پابلیک قرار بدیم.