مقدمه اي بر سي شارپ : قسمت هفتم
مقدمه اي بر سي شارپ : قسمت هفتم
تعريف متدها در سي شارپ
در اين قسمت به يكي از مهمترين مباحث برنامه نويسي سي شارپ مي رسيم.
متدها در سي شارپ و يا همان توابع در زبان C ، اعضاي يك شيء يا كلاس هستند و مجموعه اي از يك سري از كارها را انجام مي دهند. فرض كنيد در برنامه ي شما ، قسمتي بايد يك عمليات رياضي خاص را انجام دهد و اين قسمت از كد كه شامل چندين خط نيز مي گردد بايد بارها و بارها در برنامه صدا زده شود. براي نظم بخشيدن به برنامه ، آنها را مي توان به صورت توابع بسته بندي كرد و بجاي نوشتن چندين خط تكراري، فقط نام اين بسته ( تابع ) و پارامترهاي آن را فراخواني نمود.
در سي شارپ يك تابع به صورت زير تعريف مي شود : <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
(نوع و اسامي پارامترها) نام تابع نوع خروجي تابع سطح دسترسي به تابع
}
بدنه ي تابع
{
براي تعريف يك متد يا تابع ابتدا سطح دسترسي به آن مانند public و private سپس نوع خروجي تابع مانند void ( هيچي ) ذكر مي گردد كه داخل اين پرانتزها مي توان ورودي هاي تابع يا بقولي آرگومان هاي ورودي را معرفي كرد. سپس تابع بايد با { شروع و با يك } خاتمه يابد.
براي مثال :
public int myFunc( int x )
{
...….
}
هر تابعي مي تواند صفر تا تعداد بيشماري آرگومان ورودي و صفر تا تعداد بيشماري خروجي داشته باشد. بوسيله يك تابع مي توان پيچيدگي كار را مخفي كرد و صرفا با صدا زدن نام آن ، يك سري از عمليات را انجام داد. گاهي از اوقات لازم مي شود دو يا چند تابع با يك نام داشته باشيم بطوريكه پارامترهاي ورودي يا مقادير خروجي و يا نوع آرگومان هاي ورودي آنها با هم متفاوت باشد به اين كار overloading مي گويند.
بسياري از كلاس هاي دات نت فريم ورك متدها و يا توابع مفيد حاضر و آماده اي را دارند. براي مثال كلاس DateTime ، متدي به نام ToLongDatastring دارد كه تاريخ را به صورت يك رشته طولاني بر مي گرداند.
توابع void :
توابعي كه با نوع void معرفي مي شوند هيچ خروجي ندارند و در زبان ويژوال بيسيك به آْنها sub و در دلفي به آنها procedure مي گويند.
بازگرداندن يك مقدار از يك تابع :
پس از اينكه عمليات يك مجموعه از كدها درون تابع به پايان رسيد با استفاده از كلمه ي return مي توان خروجي تابع را معرفي كرد. لازم به ذكر است ، هرجايي اين كلمه ي return ذكر شود كار تابع خاتمه مي يابد.
مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex13 انتخاب نماييد. در اينجا مي خواهيم تابعي را تعريف كنيم كه سه برابر جذر يك عدد را بر مي گرداند.
using System;
namespace ex13
{
class Class1
{
[STAThread]
static void Main(string[ ] args)
{
Console.WriteLine( int3SQL(3) );
Console.ReadLine();
}
public static double int3SQL( double intInput )
{
double i=0;
i = Math.Sqrt( intInput );
return i;
}
}
}
توضيحاتي در مورد كد فوق :
1- از شيء Math در سي شارپ مي توان براي انجام يك سري عمليات رياضي ابتدايي استفاده كرد. در اينجا از متد جذر گرفتن آن استفاده شده است.
2- در تعريف تابع خودمان از كلمه ي كليدي static استفاده شده است. درون تابع Main نمي توان توابع غير استاتيك را فراخواني كرد. فعلا اين نكته را بخاطر را داشته باشيد تا در مقالات بعدي بيشتر راجع به آن صحبت شود.
3- بد نيست تابع تعريف شده را كمي بيشتر آناليز كنيم :
public static double int3SQL( double intInput )
{
double i=0;
i = Math.Sqrt( intInput );
return i;
}
ابتدا سطح دسترسي به تابع ذكر شده است. پابليك ، يعني اين تابع خارج از كلاس يك برنامه نيز قابل دسترسي است. سپس از كلمه ي static استفاده گرديده كه توضيح مختصري را در مورد آن ملاحظه كرديد. در ادامه نوع خروجي تابع كه در اينجا double مي باشد معرفي گرديده است. دقت كنيد كه حتما بايد نوع تعريف شده با مقداري كه يك تابع بر مي گرداند يكسان باشد و گرنه با يك خطا برنامه متوقف مي شود. سپس نام تابع تعريف شده است. داخل پرانتز ها نوع و نام آرگوماني ارائه شده است كه در بدنه ي تابع استفاده مي گردد. اگر به تعداد بيشتري پارامتر و يا آرگومان نياز بود مي توان آنها را با , از هم جدا كرد.
پس از اينكه عمليات تابع خاتمه مي يابد با استفاده از return اين خروجي را معرفي مي نماييم.
براي استفاده از اين تابع به سادگي نام تابع و سپس پرانتزها به همراه يك عدد دلخواه را مي نويسم كه آنرا در متد Main برنامه مي توان مشاهده كرد.
تعريف توابع در كلاس هاي ديگر برنامه و نحوه ي استفاده از آنها :
يكي از زيبايي هاي برنامه نويسي شيء گرا نظم و ترتيب و بسته بندي كارها مي باشد كه اصطلاحا در اينجا به آن encapsulation مي گويند. يعني ما يك سري از توابع و خواص را درون كپسولي به نام كلاس قرار مي دهيم تا به سادگي بارها و بارها از آن استفاده نماييم.
براي اينكار به سادگي يك توابع را به صورت معمول درون كلاس تعريف مي نماييم و سپس همانند خواص كه در مورد آنها صحبت شد ، از توابع مي توان استفاده كرد با اين تفاوت كه هنگام كار با توابع حتي اگر آنها هيچ آرگومان و يا پارامتر ورودي هم نداشته باشند ذكر پرانتزها الزامي است.
مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex14 انتخاب نماييد. سپس از منوي پروژه يك كلاس جديد را به برنامه اضافه نماييد (نام آنرا clsTools بگذاريد) .
using System;
namespace ex14
{
public class clsTools
{
public clsTools()
{
}
public uint intCalc ( uint a , uint b )
{
uint c = Math.Min (a,b);
double x = Math.Sqrt(c) ;
uint w = Convert.ToUInt32 ( x);
return w;
}
}
}
سپس در متد Main برنامه مي توان به صورت زير از آن استفاده كرد :
using System;
namespace ex14
{
class Class1
{
[STAThread]
static void Main(string[ ] args)
{
clsTools m_var = new clsTools();
Console.WriteLine( m_var.intCalc(4,9));
Console.ReadLine();
}
}
}
توضيحاتي در مورد كد فوق :
1- تابع intCalc ما دو عدد صحيح مثبت را مي گيرد و سپس جذر كوچكترين دو عدد ورودي را محاسبه مي كند.
2- براي تبديل نوع هاي عددي مختلف به هم مي توان از شيء Convert استفاده كرد.
3- بدون استفاده از شيء Convert يكبار برنامه را اجرا كنيد و دليل خطاي بوجود آمده را بيان نماييد
منبع:
مطالب مشابه :
آموزش برنامه نویسی گرافیک در سی شارپ_قسمت نهم
دستورات گرافیک سی شارپ #c آموزش برنامه نویسی گرافیک سی شارپ ساخت کامپوننت در سی شارپ
عضویت در بخش:آموزش برنامه نویسی سی شارپ c# windows Application
دستورات گرافیک سی شارپ #c آموزش برنامه نویسی گرافیک سی شارپ ساخت کامپوننت در سی شارپ
آموزش برنامه نویسی گرافیک در سی شارپ_قسمت یازدهم
C# windows Application آموزش برنامه نویسی سی شارپ: ايجاد يك پروژه تحت ويندوز در دات نت. بررسي فرم ها در
گرافیک در سی شارپ
گرافیک در سی شارپ. پروژه درس گرافیک برچسبها: graphic, C, گرافیک, سی شارپ, Source Code
مقدمه اي بر سي شارپ : قسمت سوم
دستورات گرافیک سی شارپ #c آموزش برنامه نویسی گرافیک سی شارپ ساخت کامپوننت در سی شارپ
مقدمه اي بر سي شارپ : قسمت بيستم
آموزش گرافیک در سی شارپ. مقدمه اي بر سي شارپ : قسمت بيستم . مقدمه اي بر سي شارپ : قسمت بيستم .
گرافیک در سی شارپ(استاد دوره : مهندس وحید اشرف)
الگوریتم رسم خط در سی شارپ: ابتدا یک عکس یا جعبه عکس در فرم قرار می دهیم: public partial class Form1: Form
آموزش برنامه نویسی سی شارپ C# windows Application - قسمت ششم
دستورات گرافیک سی شارپ #c آموزش برنامه نویسی گرافیک سی شارپ ساخت کامپوننت در سی شارپ
مقدمه اي بر سي شارپ : قسمت هفتم
دستورات گرافیک سی شارپ #c آموزش برنامه نویسی گرافیک سی شارپ ساخت کامپوننت در سی شارپ
آشنایی با کلاسها و اشیا (3)
رسم و گرافیک در سی شارپ [این مطلب در خصوص وراثت آمده و در بخش های بعدی مطلب گرافیک بصورت مجزا
برچسب :
گرافیک در سی شارپ