ایجاد کلاس در ویژوال بیسیک
برای افزودن کلاس تازه به پروژه خود میتوانید از منو project گزینه add new item را انتخاب کنید یا اینکه از دکمه های ctrl+shift+A استفاده نمایید. بعد از انتخاب این گزینه منویی مشابه شکل زیر مشاهده میکنید که در آن منو گزینه class را انتخاب کرده و نام کلاس خود را وارد میکنید و دکمه add را انتخاب میکنید.
بعد از افزودن کلاس به پروژه می توانید شروع به تعریف داده ها و متد های کلاس نمایید.
ساختار اولیه کلاس به این صورت است :
Public Class ClassName
End Class
حال می خواهیم داده هایی برای این کلاس تعریف کنیم ؛ به عنوان مثال این کلاس دارای دو عدد صحیح می باشد.
Public Class ClassName
Dim num1 As Integer
Dim num2 As Integer
End Class
متغیر هایی که به این صورت تعریف شده اند به صورت خصوصی بوده و به دلیل اینکه خارج از متد (توابع) کلاس تعریف شده اند به صورت عمومی در کل کلاس قابل استفاده خواهند بود. در صورتی که بخواهیم داده های کلاس توسط کلاس های دیگر قابل دسترسی باشد باید آنها را به صورت عمومی تعریف کنیم مثلا :
Public num1 As Integer
Public num2 As Integer
یک کلاس علاوه بر داده ها می تواند شامل روال ها (subroutine) یا توابع (function) ها باشد. تفاوت روال و تابع در این است که یک تابع مقداری را برای خروجی برمیگرداند ولی روال صرفا یکسری دستورات را انجام داده و مقداری برنمیگرداند.
همانطور که میدانید کلاس ها دارای یک روال به نام سازنده هستند که هنگام ایجاد یک شی از نوع کلاس فعالیت های خاصی مانند مقدار دهی اولیه متغیر ها را انجام میدهند. در ویژوال بیسیک می توانید سازنده را با استفاده از یک روال به نام new ایجاد نمایید. حال ما یک سازنده به کلاس اضافه میکنیم تا مقدار متغیر ها را برابر یک قرار دهد.
Public Class ClassName
Dim num1 As Integer
Dim num2 As Integer
Public Sub new()
num1=1
num2=1
End Sub
End Class
حال می خواهیم یک روال برای جابه جا کردن مقدار دو عدد num1 و num2 بنویسیم.
Public Class ClassName
Dim num1 As Integer
Dim num2 As Integer
Public Sub new()
num1=1
num2=1
End Sub
Public Sub Swap()
Dim temp As Integer
temp=num1
num1=num2
num2=temp
End Sub
End Class
برای جا به جا کردن مقادیر از یک متغیر کمکی استفاده شده که این متغیر به صورت محلی تعریف شده و تنها در همین روال قابل استفاده است.
حال می خواهیم یک تابع تعریف کنیم که یک ورودی به نام input را از نوع عدد و به صورت فراخوانی با مقدار گرفته و آن را با مجموع دو عدد num1 و num2 مقایسه کند اگر بزرگتر بود مقدار true و اگر کمتر بود false برگرداند.
Public Class ClassName
Dim num1 As Integer
Dim num2 As Integer
Public Sub new()
num1=1
num2=1
End Sub
Public Sub Swap()
Dim temp As Integer
temp=num1
num1=num2
num2=temp
End Sub
Public Function Check(Byval input As Integer) As Boolean
If input>(num1+num2) Then
Return True
End If
Return False
End Function
End Class