سلام عزیزان
هنگام تعریف متد جدید در سی شارپ بایستی نوع و نام تک تک ورودی هارو مشخص کنیم
حالا اگه نوع ورودی چندین مدل بود چجوری تابع رو بنویسیم
مثلا
private void PopulateTreeView(int ID, (TreeNode,TreeView) Node) { Node.Nodes.Add("X"); }
نوع Node رو چی بذاریم؟
با سلام
2 روش رو میتونین امتحان کنین
اول اینکه از method overloading استفاده کنین بدین صورت :
private void PopulateTreeView(int ID, TreeView Node) { Node.Nodes.Add("X"); } private void PopulateTreeView(int ID, TreeNode Node) { Node.Nodes.Add("X"); }
روش دوم اینکه میتونین ورودی دوم رو به عنوان یه Object بگیرین و با چک کردن type اون object عملیاتتون رو انجام بدین
اما روش اول رو بیشتر توصیه میکنم
خودم از روش اول استفاده کردم ولی طول تابع یکم زیاده و برای هر تغییر باید هردوتاش رو تغییر بدم
روش دوم رو بیشتر توضیح میدید
در روش دوم هم باید به ازای هر کدوم از Object هاتون کد رو بنویسین و تغییری در نوشتن کد ایجاد نمیکنه
صرفا فقط باعث میشه که در یک متد با گزاره شرطی if عملیاتتون رو انجام بدین
اگر عملیات شما یکسان هستش برای این دو Object ، پس احتمالا property های مشابهی دارن و عملیات شما هم بر روی این property های مشابه هستش
میتونین این property های مشابه رو درون یک class بذارین و دو Object مورد نظرتون رو از این کلاس پایه ارث بری کنین
در نهایت برای این Object واسط یک متد بنویسین و عملیاتتون رو با یک متد انجام بدین
اما در کل همون روش اول رو پیشنهاد میکنم ( بنا به اصل Single Responsibility Principle )
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)