مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

تعریف متد با ورودی چندین نوعی (in multiple type)

دوشنبه, 13 اسفند 1397 11:38

تعریف متد با ورودی چندین نوعی (in multiple type)

سلام عزیزان

هنگام تعریف متد جدید در سی شارپ بایستی نوع و نام تک تک ورودی هارو مشخص کنیم

حالا اگه نوع ورودی چندین مدل بود چجوری تابع رو بنویسیم

مثلا

private void PopulateTreeView(int ID, (TreeNode,TreeView) Node)
        {
            Node.Nodes.Add("X");
        }

نوع Node رو چی بذاریم؟

ﺳﻪ شنبه, 14 اسفند 1397 09:56

با سلام

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 عملیاتتون رو انجام بدین

اما روش اول رو بیشتر توصیه میکنم

چهارشنبه, 15 اسفند 1397 22:57

خودم از روش اول استفاده کردم ولی طول تابع یکم زیاده و برای هر تغییر باید هردوتاش رو تغییر بدم

روش دوم رو بیشتر توضیح میدید

پنج شنبه, 16 اسفند 1397 09:52

در روش دوم هم باید به ازای هر کدوم از Object هاتون کد رو بنویسین و تغییری در نوشتن کد ایجاد نمیکنه

صرفا فقط باعث میشه که در یک متد با گزاره شرطی if  عملیاتتون رو انجام بدین

اگر عملیات شما یکسان هستش برای این دو Object ، پس احتمالا property های مشابهی دارن و عملیات شما هم بر روی این property های مشابه هستش

میتونین این property های مشابه رو درون یک class بذارین و دو Object مورد نظرتون رو از این کلاس پایه ارث بری کنین

در نهایت برای این Object واسط یک متد بنویسین و عملیاتتون رو با یک متد انجام بدین

اما در کل همون روش اول رو پیشنهاد میکنم ( بنا به اصل Single Responsibility Principle )

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید