فرق در این دو نوع فراخوانی
سلام یه سوال خیلی ساده چه تفاوتی بین فراخوانی یک تابع هست (در هر دو) که اینجوریه
اولی
sum(3,2)
و فراخوانی که قبلش نمونه سازی انجام میشه هست ؟
دومی
program oprgram=new program();
oprogram.sum(3,2);
و اینم میدونم که برای استاتیک کردن تابع استاتیک لااقل باید
oprogram.sum(3,2);
اینجوری نوشت
ممنون
نقل قول: فرق در این دو نوع فراخوانی
وقتی شما در یک کلاس، یک متد رو به صورت:
SampleMethod(sampleParameter)
فراخوانی میکنید، این کد معادل:
this.SampleMethod(sampleParameter)
هست به این معنی که متد SampleMethod از "شی جاری" اجرا میشه.البته در صورتی که کلاس شی جاری این متد رو داشته باشه.
این همون فراخوانی اولی هست که انجام دادین.
وقتی یک متد از یک کلاس رو به این صورت فراخوانی میکنید:
SampleClass obj = new SampleClass();
obj.SampleMethod(sampleParameter);
در این حالت شما یک شی جدید از کلاس SampleClass میسازید و متد SampleMethod اون شی رو فراخوانی میکنید.
احتمالا لازمه شما بیشتر در مورد کلاس، شی و ... بخونید تا این شبهات برطرف بشه.
نقل قول: فرق در این دو نوع فراخوانی
یه چیزایی فهمیدم :دی
یعنی بستگی به نوع تابع داره که public یا static داره
static رو میشه به همین حالت
this.sum(11,11)
که معادل
sum(11,11)
هست میشه فراخوانی کرد
اما برای public باید حتما نمونه سازی کرد
درسته فهمیدم آیا ؟
نقل قول: فرق در این دو نوع فراخوانی
نه. در متد static و برای فراخوانی متد Static اصلا از this نمیشه استفاده کرد چون متد Static مربوط به شی خاصی نیست.
در متد static فقط میشه متدهای static دیگه رو فراخوانی کرد.
در متد غیر static هم میشه متد static رو به صورت ClassName.MethodName و هم متد غیر static رو فراخوانی کرد.
public/private/protected/internal هم access modifier هستن و ربطی به static بودن یا نبودن متد ندارن.یکی کتاب #C رو مطالعه کنید.
نقل قول: فرق در این دو نوع فراخوانی
من پیشنهاد می کنم ، قبل از اینکه کار با کلامات کلیدی در هر زبان برنامه نویسی را یاد بگیری ، بعد از یک مثال ساده ،(خیلی کوچیک) سعی کم هدف استفاده از اون کلمه را بیابی، حالا هر چند کم. ولی درک کنی ، فقط نباید گفت که اینجا This باشه یا اونجا استاتیک باشه یا Private باشه یا نباشه !!! هدف از این کار چی بود که این قرارداد ها پیش آمد.
موفق باشید.
نقل قول: فرق در این دو نوع فراخوانی
من شنیدم کتاب آقای هاشمی خوبه
هر جا دنبالش بودم ورژن 2005 C# بود فک کنم .
یک کتاب خوب پیرامون مباحث C#.net و asp.net بتونید معرفی کنید ممنون میشم
نقل قول: فرق در این دو نوع فراخوانی
کتاب دایتل خوبه، ولی بهترین کتاب، کتاب جوزف البهاری هست : http://www.albahari.com
کتابهای فارسی زیاد بدرد نمیخورن، من خودم ۲۰۰۸ خواستم کتاب هاشمی رو بخونم دیدم بر خلاف کتابهای درست و حسابی به جای اینکه از مفاهیم پایه ای(مثل مفاهیم Type و انواع حافظه و ...) مستقیم رفته سراغ WinForms و چند تا مثال MessageBox زده و با زدن دکمه کادر پیغام نمایش میداد و فکر میکردم برنامه نوشتم!
با دایتل شروع کن، بعد C# 5.0 in a Nutshell آقای البهاری رو بخون و بعد کتاب بسیار مفهومی و در عین حال بسیار پیچیده #CLR via C آقای جفری ریشتر رو بخون(البته خیلی زمان بره این کتاب)