تابع نیز همانند پروسیجر است و در خارج از بدنه ی اصلی نوشته می شود و فقط در بدنه ی اصلی صدا زده می شود . تفاوت تابع و پروسیجر در خروجی آن است . تابع خروجی دارد اما پروسیجر خروجی ندارد .

 

static void Main(string[] args)
}     
;int  z         
;() z= sum         
;Console.Write(z)         
;() Console.ReadKey         
{    

()  public static int sum
}       
; int c           
; c = 10+20           
;  return c           
{       

 

در برنامه ی بالا مقدار تابع sum را که حاصل برگشتی return c بود درون متغییری به نام Z ریختیم سپس اقدام به چاپ آن نمودیم البته می توانستیم متغییر Z را تعریف نکنیم و  در بدنه ی اصلی به یکباره سراغ چاپ آن برویم مثل خط زیر

 

;Console.Write(sum())

توابع می توانند مقدایر ورودی نیز داشته باشند مثل تابع زیر

 

static void Main(string[] args)
}
;int x , y, z
;x =  Convert.ToInt32(System.Console.ReadLine())
;y =  Convert.ToInt32(System.Console.ReadLine())
;z =  sum(x,y)
;Console.Write(z)
{

public static int sum(int a, int b)
}
;return 10
{

 

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

 

 static void Main(string[] args)
}
;int x , y, z
;string k
;x =  Convert.ToInt32(System.Console.ReadLine())
;y =  Convert.ToInt32(System.Console.ReadLine())
;z =  sum(x,y)
;Console.Write(z)


        public static int sum(int a)
}
;return 9
{


        public static int sum(int a, int b)
}
;return 10
{

        public static int sum(int a , int b , int c)
}
;return 11
{

توابع می توانند به صورت رشته ای نیز باشند 

مثال :

 

 

static void Main(string[] args)
}   
;"string k="good       

;string f       
;f = sum(k)       
;Console.Write(f)       
;()System.Console.ReadKey       
{   
        
        public static string sum(string s)
}   

;Console.Write(s)       
;"s = "Thanks       
;return s       
{   

ما در خط سوم متغییر k را تعریف کردیم که مقدار good درون آن قرار گرفت و در خط چهارم متغییر f را تعریف کردیم و در خط پنجم تابع sum را فراخوانی کردیم و متغییر k را درون (k)sum صدا زدیم . با انجام این کار مقدار k  که همان good می باشد را درون متغییر s  که بعنوان ورودی تابع sum می باشد قرار دادیم . در اینجا خط ششم اجرا نمی شود و برنامه به تابع sum  می رود . در تابع sum مقدار k را که درون s قرار داده بودیم چاپ می کند به عبارتی کلمه ی good چاپ می شود. سپس به سراغ خط بعد از آن می رود و مقدار s  را تغییر می دهد و آن را برابر با Thanks  می کند و در خط آخر return مقدار S را بر می گرداند و در متغییر f قرار می دهد . سپس در خط ششم از تابع اصلی یا همان main مقدار s که برابر با Thanks بود چاپ می شود . خط هفتمم که قبلا نیز توضیح داده بودم صرفا جهت اینکه برنامه بسته نشود و ما بتوانیم خروجی را مشاهده کنیم می نویسیم .

نکته : دستورات بعد از return اجرا نمی شود .

نکته : دستورات به صورت خط به خط اجرا می شود . اولویت با خط کدی  می باشد که در بالاترین خط قرار گرفته است .

نکته : مقادیر پس از ورود به تابع می توانند تغییر کنند یا نکنند. هر دو حالت امکان پذیر است .