PDA

View Full Version : تفاوت متد و تابع



alireza_g698
جمعه 09 آبان 1393, 21:20 عصر
سلام دوستان

دوستان تفاوت تابع و متد در چی هست؟


ممنون از راهنمایی شما

mreram
جمعه 09 آبان 1393, 21:55 عصر
تفاوتی ندارند دوست عزیز

alireza_g698
جمعه 09 آبان 1393, 22:04 عصر
سلام

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

ممنون از شما

محمد آشتیانی
جمعه 09 آبان 1393, 22:27 عصر
سلام
من فکر میکنم هر دو یکی هستن در سی شارپ ، ولی خب مثلا در vb.net ، متد دو شکل داره که میشه تابع و سابروتین (Function - Sub) که تفاوت این دو اینه که تابع مقدار برمیگردونه و ساب روتین مقدار برنمیگردونه ، بنابراین تو vb هم مقایسه بین متد و تابع نداریم چرا که تابع خودش یک شکل از متد هست.
احتمالا منظور شما همین تعریفی هست که تو vb.net از تابع میشه.

alireza_g698
جمعه 09 آبان 1393, 22:33 عصر
سلام
من فکر میکنم هر دو یکی هستن در سی شارپ ، ولی خب مثلا در vb.net ، متد دو شکل داره که میشه تابع و سابروتین (Function - Sub) که تفاوت این دو اینه که تابع مقدار برمیگردونه و ساب روتین مقدار برنمیگردونه ، بنابراین تو vb هم مقایسه بین متد و تابع نداریم چرا که تابع خودش یک شکل از متد هست.
احتمالا منظور شما همین تعریفی هست که تو vb.net از تابع میشه.


درود
ممنون از توجهتون
منظورم در سی شارپ هست

alireza_g698
جمعه 09 آبان 1393, 22:50 عصر
دوستان متد برای زبان های شی گرا مثل جاوا به کار میره و تابع برای زبان های ساختاری مثل cبه کار میره.


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

لطفا راهنمایی بفرمایید
سپاس

ali_md110
جمعه 09 آبان 1393, 23:13 عصر
سلام

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


public int GetMyFunc
return 10;

ولی از نوع void که مقدار بر نمیگردونه هم در سی شارپ هست که باز بهش میگن تابع



public void MyProc
}
فراخوانی سایر متدها و مقدار دهی متغیر.....
{



شاید منظور استاد خبره شما این بوده

ghasem110deh
جمعه 09 آبان 1393, 23:13 عصر
سلام


هر دو یکی هستن ، فقط :


در برنامه نویسی شی گرا ، یک روش زیر روال (یا پردازه یا تابع) در ارتباط با یک کلاس است.


با توجه به برنامه نویسی شی گرا از "روش - متد" استفاده می شود ، نه توابع .


مثال :



public int myFunc( int x )
{
مجموعه دستورات//
}


()publicvoidDoSomething

method

()publicintDoSomethingAndReturnMeANumber
function

دقیقا همون چیزی که آقا آشتیانی گفتن صدق میکنه : تابع مقدار برگشتی داره ولی متد فقط یه سری از دستورات هستش !
و اینکه برای توابع حتما میبایست نوع مقدار برگشتی تعیین بشه !

منبع : http://stackoverflow.com/questions/12258964/difference-between-method-and-function

mreram
جمعه 09 آبان 1393, 23:44 عصر
تو برنامه نویسی شی گرا متد یا پروسیجر(procedure) یا تابع یک زیرروال در یک کلاس هست... و همونطوری که سی شارپ متد رو از جاوا و سی پلاس پلاس گرفته تابع یا متد یا پروسیجر تفاوتی با هم ندارند ...ولی اگر تفاوت کلی متد و تابع رو میخوای بدونی این جدول یه سری تفاوتهای اصطلاح متد و تابع رو نشون میده...



S.No
Functions
Methods


1
Functions do not have any reference variables
Methods are called by reference variables



2
All data that is passed to a function is explicitly passed
It is implicitly passed the object for which it was called


3
It does not have access controlling i.e.,Function(other than static functions) declares and defines anywhere in the code
It has access controlling i.e.,Method should declare and define in the class only





4
Function applies to both object oriented and non-object oriented language(procedural language.eg. C, Scripting language eg; JavaScript etc)
Method is only applicable to object oriented programming language like C++, C#, Java etc

مهرداد صفا
شنبه 10 آبان 1393, 05:20 صبح
سلام.
در اصل متود مقدار برگشتی نداره ولی تابع داره.
اما در اصطلاح رایج عامیانه :تعجب: به اعضای کلاسها، با مقدار برگشتی و یا بدون مقدار برگشتی متود گفته میشه و به توابع STATIC و یا توابع کتابخانه ای بیشتر تابع گفته میشه.

elec60
شنبه 10 آبان 1393, 12:53 عصر
به نقل كتاب از جوزف البهاري:

متد زير مجموعه اي از فانكشن هست، هر متدي يك فانكشن هست اما هر فانكشني متد نيست.

براي مثال عملگر + يك Function هست اما Method نيست اما Math.Pow هم Method هست هم Function

جزئيات بيشتر و دقيق تر رو تو كتاب البهاري مطالعه كنيد.



نميدونم چرا كسي كتابهاي فوق العاده مفهومي و عميق جوزف البهاري و همين طور(كتاب بسيار مفهومي و نسبتا دشوار) جفري ريشتر رو نميخونه كه خداي دات نت بشه! من خودم اول راهم و چيز زيادي بلد نيستم، ولي چون اين مراجع رو مطالعه مي كنم بسياري از سوالات پايه اي اين سايت رو از اين كتابها ياد گرفتم. مطالعه مراجع فارسي كاملا اتلاف وقته. پيشنهاد ميكنم كتابهاي البهاري و يا ريشتر رو حتما مطالعه كنيد.

ghasem110deh
شنبه 10 آبان 1393, 18:37 عصر
به نقل كتاب از جوزف البهاري:

متد زير مجموعه اي از فانكشن هست، هر متدي يك فانكشن هست اما هر فانكشني متد نيست.

براي مثال عملگر + يك Function هست اما Method نيست اما Math.Pow هم Method هست هم Function

جزئيات بيشتر و دقيق تر رو تو كتاب البهاري مطالعه كنيد.



نميدونم چرا كسي كتابهاي فوق العاده مفهومي و عميق جوزف البهاري و همين طور(كتاب بسيار مفهومي و نسبتا دشوار) جفري ريشتر رو نميخونه كه خداي دات نت بشه! من خودم اول راهم و چيز زيادي بلد نيستم، ولي چون اين مراجع رو مطالعه مي كنم بسياري از سوالات پايه اي اين سايت رو از اين كتابها ياد گرفتم. مطالعه مراجع فارسي كاملا اتلاف وقته. پيشنهاد ميكنم كتابهاي البهاري و يا ريشتر رو حتما مطالعه كنيد.



سلام
کتاب فارسی هستش یا زبان اصلیه ؟
لینک دانلود دارین ؟

elec60
یک شنبه 11 آبان 1393, 23:11 عصر
سلام
کتاب فارسی هستش یا زبان اصلیه ؟
لینک دانلود دارین ؟

کتاب ترجمه بدرد نمیخوره!
انگلیسیه، انگلیسی فنی ساده ست و راحت قابل درکه.
اگه خواستین ایمیل بدین بفرستم.

alireza_g698
سه شنبه 13 آبان 1393, 16:17 عصر
سلام
خیلی ممنون میشم برا من هم بفرستین
با تشکر

alireza_g698@yahoo.com