يکی از مهمترين مسائل موجود در هر زبان برنامه نويسی ، نحوه ذخيره و بازيابی اطلاعات مورد نياز يک برنامه است . فرض کنيد ، قصد نوشتن برنامه ای را داشته باشيم که در آن از کاربران بخواهيم نام خود را وارد نمايند . پس از درج نام توسط کاربران ، اطلاعات فوق را چگونه می بايست ذخيره نمود تا امکان استفاده از آنان در برنامه ، فراهم گردد؟. چگونه می توان اقدام به ذخيره سازی داده هائی با محتوياتی خاص نظير : "اعداد" و يا " تاريخ " نمود؟. نحوه بازيابی اطلاعات ذخيره شده به چه صورت است ؟ در پاسخ به تمامی سوالات فوق ، می بايست به جايگاه بسيار مهم "متغيرها " در يک زبان برنامه نويسی ، اشاره نمود .
متغيرها يکی از مفاهيم اوليه و در عين حال بسيار مهم در دنيای برنامه نويسی می باشند . با استفاده از متغيرها يک نام ( label ) به ناحيه ای از حافظه نسبت داده شده و امکان ذخيره سازی نوع خاصی از داده در آن فراهم می گردد . هر يک از زبان های برنامه نويسی دارای امکانات و مجموعه قوانينی به منظور تعريف ، نسبت دهی و دستابی به محتويات يک متغير می باشند .با استفاده از متغيرها ، امکان انجام عمليات متفاوتی نظير محاسبات رياضی ، پردازش بر روی رشته ها ، شمارش طول يک عبارت ، در يک برنامه فراهم می گردد .
VB.NET ، زبانی قدرتمند در ارتباط با نوع داده ها می باشد . در زمان تعريف يک متغير ، می بايست نوع داده مربوطه را نيز مشخص نمود (نظير String,Integer و يا Date ) .پس از تعريف يک متغير و نوع آن ، نحوه برخورد با داده ( نحوه ذخيره و بازيابی و انجام عمليات مجاز بر روی آن ) ، مشخص می گردد.
در اين مقاله قصد داريم به بررسی امکانات VB.NET به منظور ذخيره سازی اطلاعات پرداخته و در اين راستا با نوع های متفاوت داده و جايگاه هر يک از آنان ، آشنا شويم .
متغير چيست ؟
متغير ، مرجعی برای مراجعه به يک محل خاص در حافظه بوده که برنامه نويس برای مراجعه به آن يک نام خاص را تعريف و مشخص می نمايد . از مکان های فوق به منظور ذخيره سازی اطلاعات و استفاده از محتويات مربوطه در يک برنامه استفاده می گردد. در حقيقت متغيرها ، اطلاعاتی را بطور حقيقی در خود ذخيره نمی نمايند بلکه ما را به سمت محل ذخيره سازی و در نهايت يافتن اطلاعات ، هدايت می نمايند .
مثال : در مثال زير سه متغير به منظور ذخيره سازی يک رشته Text ، يک مقدار عددی و يک تاريخ ، تعريف و مقداردهی شده اند .
Dim City As String Dim Counter As Integer Dim PublishDate As Date City = "Tehran" Counter = 190 PublishDate = #6/15/2004# |
پس از تعريف هر متغير ، امکان نسبت دهی يک مقدار به آن ، مشاهده اطلاعات ذخيره شده ، بازيابی اطلاعات و يا درج اطلاعات جديد در آن ، فراهم می گردد.متغيرها از جمله عناصر ضروری برای ذخيره سازی داده در يک زبان برنامه نويسی بوده و VB.NET نيز از اين قاعده مستثنی نخواهد بود .
تعريف يک متغير
همانگونه که در مثال قبل مشاهده گرديد ، قبل از انتساب مقدار به يک متغير، می بايست اقدام به تعريف متغير و مشخص نمودن نوع داده آن نمود . پس از تعريف يک متغير و مشخص نمودن نوع آن ، نحوه برخورد با آن در برنامه مشخص خواهد شد. با استفاده از فرآيندی موسوم به Declaration ، اقدام به تعريف متغيرها و نوع آنان ، می گردد. تعريف متغيرها ، يکی از نکات مهم در دنيای برنامه نويسی است . در زما ن ايجاد صفحات پويا با استفاده از ASP.NET و توسط زبان های برنامه نويسی نظير VB.NET و يا سی شارپ ، می بايست تمامی متغيرها قبل از استفاده دريک برنامه و يا صفحه وب ، تعريف گردند .
در VB.NET برای تعريف يک متغير از کليد واژه Dim ( اقتباس شده از واژه Dimension ) ، استفاده می گردد.
مثال : در مثال زير ، يک متغير رشته ای با نام strCityName ، تعريف و در ادامه مقدار " Teharn" ، به آن نسبت داده شده است .
Dim strCityName As String strCityName = "Tehran" |
در زمان تعريف يک متغير بطور همزمان می توان مقداری را به آن نيز نسبت داد ( تعريف و مقداردهی همزمان ) :
Dim strCityName As String = "Tehran" |
امکان تعريف همزمان چندين متغير هم نوع در يک سطر نيز وجود دارد : ( تعريف همزمان چندين متغير با نوع يکسان )
Dim strCityName1 , strCityName2 , strCityName3 As String strCityName1 = "Tehran" strCityName2 ="Ahwaz" strCityName3 = "Shiraz" |
درادامه می توان به هريک از متغيرهای تعريف شده ، مقدار مورد نظر را نسبت داد .
مثال کاربردی : در اين مثال در ابتدا سه متغير را تعريف و پس از مقداردهی مناسب هر يک از آنان ، نتايج را با يک فرمت مناسب در خروجی نمايش خواهيم داد ( يک صفحه ASPX ) .
مرحله اول : فعال نمودن ويرايشگر صفحات وب و تايپ دستورات زير :
<Script Language= "vb" runat="server"> Sub Page_Load ( ) Dim ArticleTitle As String Dim ArticleNumber As Integer Dim PublishDate As Date ArticleTitle = " ذخيره سازی اطلاعات درVB.NET ( بخش اول) " ArticleNumber = 190 PublishDate = #6/15/2004# Label1.Text = ArticleTitle Label2.Text = ArticleNumber Label3.Text = PublishDate End Sub </Script> <html dir="rtl"> <head> <title>ايجاد متغير</title> </head> <body> عنوان مقاله : <asp:label id="Label1" runat="server" /> <br>شماره مقاله: <asp:label id="Label2" runat="server" /> <br>تاريخانتشار مقاله: <asp:label id="Label3" runat="server" /> </body> </html> |
مرحله دوم : ذخيره نمودن برنامه فوق در فايلی با نام TestVariable.aspx
مرحله سوم : فعال نمودن فايل TestVariable.aspx در مرورگر
مرحله چهارم : برگشت به برنامه فوق و افزودن يک خط جديد ( استفاده از يک متغير که قبلا" تعريف نشده باشد )
... Dim PublishDate As Date ArticleTitle = " ذخيره سازی اطلاعات درVB.NET ( بخش اول) " ArticleNumber = 190 PublishDate = #6/15/2004# ArticleAuthor = "مديريت وب" ... Label1.Text = ArticleTitle ... |
مرحله پنجم : ذخيره نمودن برنامه فوق در فايلی با نام TestVariable.aspx
مرحله ششم : فعال نمودن فايل TestVariable.aspx در مرورگر
همانگونه که مشاهده می شود ، در خط شماره نه (خطی که از متغير ArticleAuthor ، استفاده شده است ) به دليل استفاده از متغيری که قبلا" اقدام به تعريف آن نشده است با يک خطاء مواجه خواهيم شد. به منظور برطرف نمودن خطای فوق ، می بايست متغير ArticleAuthor تعريف و در ادامه مقدار مورد نظر در آن ذخيره گردد.
• در برنامه فوق ، در ابتدا اقدام به تعريف سه متغير شده است . ما قصد داريم که از text در متغير ArticleTitle استفاده نمائيم ، بنابراين آن را به صورت String تعريف کرده ايم . شماره مقاله يک عدد صحيح است و بدين منظور و برای نگهداری مقدار مربوطه از متغيری با نام ArticleNumber و نوع صحيح استفاده شده است . از متغير PublishDate ، که از نوع Date تعريف شده است به منظور ذخيره تاريخ نشر يک مقاله، استفاده شده است .
Dim ArticleTitle As String Dim ArticleNumber As Integer Dim PublishDate As Date |
• پس از تعريف هر يک از متغيرها ، می توان به هر يک از آنان مقدار مورد نظر را نسبت داد : مقدار " ذخيره سازی اطلاعات در VB.NET ( بخش اول ) " ، به متغير ArticleTitle نسبت داده شده است . در اين رابطه ، مقدار مورد نظر بين علامت کوتيشن قرار داده شده است . بدين ترتيب به VB.NET اعلام می شود که ما قصد نسبت دهی يک text به يک متغير را داريم . در صورتی که تمايل به انتساب يک مقدار عددی به متغيری را داشته باشيم ، می بايست علامت کوتيشن را حذف نمائيم. در متغيردوم ، مقداری صحيح و عددی به ArticleNumber ، نسبت داده شده است . در نهايت مقداری از نوع Date به متغير PublishDate ، نسبت داده شده است .
ArticleTitle = " ذخيره سازی اطلاعات درVB.NET ( بخش اول) " ArticleNumber = 190 PublishDate = #6/15/2004# |
• در ادامه ، سه کنترل <asp:label> ، و با نام Label1,Label2 و Label3 ايجاد و مقدار خصلت Text هر يک از آنان ، محتويات هر يک از سه متغير تعريف شده، در نظر گرفته شده است .
Label1.Text = ArticleTitle Label2.Text = ArticleNumber Label3.Text = PublishDate |
• در ادامه ، يک خط جديد به برنامه اضافه گرديد تا نشان داده شود که در صورت استفاده از يک متغير که قبلا" آن را تعريف نکرده ايم ، با چه نوع خطائی برخورد خواهيم کرد. علت بروز خطاء ، به عدم تعريف متغير ArticleAuthor ، برمی گردد . برای رفع اشکال فوق ، می بايست متغير ArticleAuthor را در ابتدا تعريف نمود :
Dim ArticleAuthor As String |
انواع نوع های ساده
VB.NET دارای دوازده نوع داده متفاوت بوده که می توان آنان را به سه گروه عمده تقسيم نمود : نوع های عددی ، نوع های حرفی ( متنی ) و نوع های متفرقه .
انواع نوع های ساده ( Simple Data Types )
VB.NET دارای دوازده نوع داده متفاوت بوده که می توان آنان را به سه گروه عمده تقسيم نمود : نوع های عددی ، نوع های حرفی ( متنی ) و نوع های متفرقه . در ادامه به بررسی هر يک از گروه های فوق ، خواهيم پرداخت ( در اين مقاله نوع Object بررسی نخواهد شد و در مقالاتی جداگانه به اين نوع داده ، خواهيم پرداخت ) .
گروه اول : نوع های عددی
با توجه به تنوع گسترده نوع های عددی در اين گروه ، می توان هر گونه عددی را به يک متغير نسبت داد . مثلا" می توان متغيرهائی را ايجاد و به آنان اعداد صحيح ، اعداد کسری و يا اعداد اعشاری منفی را نسبت داد
Dim IntegerNumber1 As Integer Dim DecimalNumber2 As Decimal Dim FloatingPointNumber3 As Float IntegerNumber1 = 75 DecimalNumber2 = 3.14 FloatingPointNumber3 = -1.4E02 |
نوع های عددی ، يکی از انواع داده متداول در VB.NET بوده که خود به هفت نوع متفاوت تقسيم می گردند :
• Integer : برای تعريف متغيرهائی که دارای مقادير صحيح می باشند ، استفاده می گردد( 3 ، 12 ، 5 - ) . متغيرهائی از اين نوع ، قادر به نگهداری مقادير صحيح بين 2،147،483،648 - تا 2،147،483،647 ، می باشند . برای اعداد خارج از محدوده فوق ، نوع long در نظر گرفته می شود.
• Byte : متغيرهائی از اين نوع ، قادر به نگهداری مقاديرصحيح بين ، 0 تا 255 ، می باشند . از نوع فوق به منظور انجام عمليات پايه و ساده رياضی استفاده می گردد . ( مثلا" شمارنده هائی در برنامه که مقدار آنان حداکثر 255 می باشد) . برای ذخيره سازی اين نوع متغيرها صرفا" يک بايت حافظه در نظر گرفته می شود.
• Short : نوع فوق ، شکلی خاص از نوع Integer می باشد. متغيرهائی از اين نوع قادر به نگهداری محدوده کمتری از اعداد صحيح ( بين 32،768 - تا 32،767 ) در مقايسه با نوع Integer می باشند .
• Long : نوع فوق شباهت زيادی به نوع Integer داشته با اين تفاوت که امکان ذخيره سازی محدوده بيشتری از اعداد را فراهم می نمايد. يک متغير از نوع Long قادر به ذخيره سازی مقاديربين 9،223،372،036،854،775،808 - تا 9،223،372،036،854،775،807 ، می باشد .
• Single : متغيرهائی از اين نوع ، قادر به نگهداری اعداد اعشاری با دقت معمولی ودر محدوده زير می باشند :
محدوده نوع Single |
-3.402823E38 to -1.401298E-45 | اعداد منفی |
1.401298E-45 to 3.402823E38 | اعداد مثبت |
• Double : متغيرهائی از اين نوع ، قادر به نگهداری اعداد اعشاری با دقت مضاعف و در محدوده زير می باشند :
محدوده نوع Double |
-1.79769313486232E308 to -4.94065645841247E-324 | اعداد منفی |
4.94065645841247E-324 to 1.79769313486232E2308 | اعداد مثبت |
• Decimal : متغيرهائی از اين نوع ، قادر به نگهداری اعداد اعشاری تا حداکثر بيست و هشت رقم اعشار می باشند.
محدوده نوع Decimal |
+/- 79،228،162،514،264،337،593،543،950،335 | حداکثر: با لحاظ نمودن صفر رقم اعشار |
+/- 7.9228162514264337593543950335 | حداکثر: با لحاظ نمودن بيست و هشت رقم اعشار |
گروه دوم : نوع های حرفی ( متنی )
برای ذخيره سازی محتويات متنی ، از دو نوع داده String و Char استفاده می شود:
• نوع String : متغيرهائی از اين نوع ، همه چيز را به عنوان text در نظر می گيرند ولو اين که مقدار مورد نظر شامل حروف و اعداد و يا صرفا" اعداد و يا تاريخ باشد . دستور زير متغيری از نوع string و با نام CityName را تعريف و در ادامه مقدار "Tehran" ، به آن نسبت داده می شود.
Dim CityName As String CityName = "Tehran" |
• همانگونه که قبلا" اشاره گرديد ، برای نسبت دهی يک مقدار به متغيرهائی از نوع string ، از کوتيشن استفاده می شود.انجام عمليات رياضی بر روی رشته ها ، مجاز نخواهد بود (حتی در صورتی که محتويات آنان عددی باشد) . مثلا" در صورتی که تصميم به جمع دو رشته "12" و "14" را با يکديگر داشته باشيم ، مقدار "26" بدست نخواهد آمد. در چنين حالتی ، ماحصل جمع دو رشته مقدار "1412" ، خواهد بود . چراکه رشته Number2 با Number1 را جمع کرده ايم در صورتی که رشته Number1 با Number2 جمع شود ، مقدار " 1214 " را خواهيم داشت .
Dim Number1 As string Dim Number2 As string Dim Number3 As string Number1 = "12" Number2 = "14" Number3 = Number2 + Number1 ' Result : "1412" |
• نوع Char نوع فوق ، نسبت به نوع String متفاوت بوده و در آن text به عنوان يک عدد ، ذخيره می گردد. بدين ترتيب ، امکان ذخيره سازی صرفا" يک کاراکتر در يک متغير، فراهم می گردد. در چنين حالتی می توان يک عدد بين صفر تا 65535 را ذخيره نمود. در صورتی که قصد نمايش محتويات يک متغير از نوع char را داشته باشيم ، صرفنظر از نحوه ذخيره سازی ، يک کاراکتر text ، نمايش داده می شود . کد زير ، نحوه تعريف و نسبت دهی يک مقدار به متغيری از نوع char را نشان می دهد( حرف 'C' ، پس از کوتيشن ، نشاندهنده اين موضوع است که متغير از نوع Char می باشد) .
Dim Letter As Char Letter = "Q"C ' This would be stored as 81 |
گروه سوم : نوع های متفرقه
دو نوع داده ديگر در VB.NET وجود دارد که می توان آنان را در اين گروه قرار داد :
• نوع Date : متغيرهائی از اين نوع ، قادر به نگهداری تاريخ و زمان می باشند . برای ذخيره تاريخ می بايست از فرمت mm/dd/yy استفاده گردد. مقدار نسبت داده شده به يک متغير از نوع Date توسط علائم " # " ، محصور می گردد . متغيرهائی از نوع Date ، قادر به ذخيره سازی تاريخ تا سال 9999 می باشند .
Dim Date1 As Date Date1 = # 12/ 07 / 2004# |
• از متغيرهای نوع Date می توان به منظور ذخيره سازی زمان نيز استفاده نمود :
Dim Time1 As Date Time1 = #16:25:05# |
• نوع Boolaen : متغيرهائی از اين نوع می توانند دارای مقدار True و يا False باشند . در VB.NET در صورتی که مقادير فوق را به نوع صحيح تبديل نمائيم ، مقادير 1 - و صفر را خواهيم داشت . زمانی که ساير نوع های عددی را به مقادير Boolaen تبديل می نمائيم ، مقدار صفر به False و ساير مقادير به True تبديل خواهند شد . زمانی که مقادير Boolean را به ساير نوع های داده تبديل می کنيم ، False مقدار صفر و True مقدار يک را دارا خواهد بود. علت اين که در مواردی که True تبديل به نوع صحيح در VB.NET می گردد مقدار 1 - و زمانی که به ساير نوع ها تبديل می گردد ، مقدار 1 + را دارا می باشد ، به حمايت از کدهای نوشته شده قبلی در ويژوال بيسيک برمی گردد .
Boolean Value | Numeric value |
True False | -1 / +1 0 |
• از متغيرهای Boolean ، می توان به منظور نگهداری وضعيت يک متغير استفاده نمود. در صورتی که مقدار اينچنين متغيرهائی True نباشد ، قطعا" مقدار آنان False خواهد بود. بدين ترتيب می توان از اين نوع متغيرها در موارد متعدد و متناسب با شرايط موجود استفاده و پس از اتخاذ تصميم ، عمليات مورد نظر را دنبال نمود.
Dim Done As Boolean Done = False If Done = False then ... Else ... |
• مقدار False و يا True ، نمی بايست بين کوتيشن قرار داده شوند .
نامگذاری متغيرها
بهترين حالت برای نامگذاری يک متغير ، در نظر گرفتن نامی است که نشاندهنده وظيفه يک متغير در برنامه باشد. در صورتی که اسامی متغيرها به درستی انتخاب گردند ، خوانائی برنامه و در نهايـت نگهداری و اعمال تغييرات در آينده نيز راحتر خواهد بود . پيشنهاد می گردد ، اسامی متغيرها به صورت تشريحی در نظر گرفته شود، حتی اگر اين کار باعث طولانی تر شدن اسامی می گردد .
برای انتخاب نام يک متغير ، موارد زير پيشنهاد می گردد :
• استفاده از اسامی نظير DateStart و يا DateEnd بمراتب بهتر از اسامی StartDate و يا EndDate می باشد ، چراکه اسامی فوق در صورت جستجوی متغيرها بر اساس حروف الفبائی، به دنبال هم نمايش داده می شوند .
• متغيرهائی نظير Price ،Name و Number گيج کننده می باشند . چراکه معمولا" در برنامه ها بيش از يک مورد از آنان وجود دارد نظير : NameFirst ,NameLast, PriceBuy و PriceSell .
• استفاده از اسامی مشابه نوع داده ها ، مجاز نمی باشد . مثلا" تعريف متغيری با نام Integer ، مجاز نخواهد بود .
• برای نامگذاری متغيرها از اسامی خلاصه شده ای که اقتباس شده از کلمات متفاوتی می باشند، استفاده نگردد . مثلا" استفاده از متغيری با نام FDOM که اقتباس شده از کلمات First Day Of Month می باشد ، يک انتخاب مناسب نخواهد بود ، چراکه FDOM می تواند مخفف کلمات متعددی باشد .
• در اکثر زبان های برنامه نويسی انتخاب يک نام برای متغير تابع مجموعه مقررات و محدوديت هائی است . در VB.NET تمامی متغيرها می بايست با يک حرف شروع شده و نمی بايست نام در نظر گرفته شده شامل نقطه و يا فضای خالی باشد . پيشنهاد می گردد به منظور افزايش خوانائی يک برنامه، صرفا" از علامت Underscore ( _ ) به همراه نام يک متغير استفاده گردد .
• VB.NET نسبت به حروف بزرگ و کوچک حساس نمی باشد . مثلا" متغيرهائی با نام counter و COUNTER مشابه در نظر گرفته خواهند شد .برخی از زبان های برنامه نويسی نظير سی شارپ و يا Jscript.NET ، نسبت به حروف بزرگ و کوچک حساس بوده و متغيرهائی با نام counter و COUNTER ، به عنوان دو متغير جداگانه در نظر گرفته می شوند .
روشی برای نامگذاری متغيرها
در صورتی که دارای تعداد زيادی متغير در يک برنامه باشيم ، می بايست از روش های خاصی به منظور آگاهی از نوع محتويات آنان ، استفاده کرد. در چنين مواردی می توان به بخش تعاريف متغيرها در برنامه مراجعه نمود و از نوع داده مربوط به هر يک از آنان آگاهی يافت . در موارديکه هزاران متغير در يک برنامه تعريف شده است ، منطقی نخواهد بود که برای آگاهی از نوع محتويات يک متغير، ليست تمامی متغيرها را بررسی نمود . در يک برنامه در برخی مواقع لازم است که نوع يک متغير به نوع ديگر، تبديل گردد، در چنين مواردی آگاهی از نوع يک متغير کمک قابل توجهی را به برنامه نويس ارائه داده و از بروز خطاء در برنامه پيشگيری می نمايد .بدين منظور می توان از مجموعه ای قواعد که به نوعی امروزه بين برنامه نويسان مرسوم شده اند ، برای مشخص نمودن نوع يک متغير استفاده نمود . قواعد فوق ، اجباری نبوده و صرفا" بين برنامه نويسان مرسوم شده اند.رويکرد فوق ، گزينه ای مناسب برای نامگذاری متغيرها با توجه به نوع داده آنان است . در اين روش که موسوم به Hungarian notation می باشد ،از سه حرف اول نام هر متغير به منظور شناسائی نوع داده متغير، استفاده می گردد :
Data Type | Prefix | Example |
Boolean | bln | blnMember |
Byte | byt | bytByte |
Char | chr | chrChar |
Date | dat | datToday |
Double | dbl | dblDouble |
Decimal | dec | decDecimal |
Integer | int | intSalary |
Long | lng | lngLong |
Single | sng | sngSingle |
Short | sho | shoShort |
String | str | strTextBox |
در اين رابطه از روشی ديگر با نام Short Hungarain notation استفاده می گردد . برای آگاهی از جزئيات اين روش می توانيد از آدرس MSDN ، استفاده نمائيد .
عملگرها ( Operators )
استفاده از متغيرها در يک زبان برنامه نويسی زمانی مفيد خواهد بود که بتوان بر روی آنان عملياتی را انجام داد . به منظور انجام عمليات بر روی متغيرها ، نيازمند استفاده از "عملگرها" می باشيم . "عملگر" ، علامتی است که مسئوليت انجام يک عمليات از قبل تعريف شده را بر روی "اپراندهای " خود و توليد نتيجه مورد نظر ، برعهده دارد . اگر 1+2 = X باشد ، "X " يک متغير ، "=" يک عملگر و مقادير يک و دو ، اپراندهای آن می باشند .
عملگر نسبت دهی
عملگر "=" ، متداولترين و شناخته ترين عملگر استفاده شده در دنيای برنامه نويسی است.از عملگر فوق به منظور نسبت دادن مقدار به يک متغير استفاده می گردد. ( متغير در سمت چپ و مقدار متغير در سمت راست عملگر "=" ،قرار می گيرد) .
Dim intNumber1 As Integer intNumber1 = 7447 |
VB.NET هيچگونه تاکيد و يا اجباری در خصوص تعداد فضای خالی ( Space ) استفاده شده در دو طرف علامت "=" ندارد.برنامه نويسان به منظور افزايش خوانائی برنامه ، می توانند به تعداد مورد نظر از فضای خالی استفاده نمايند .
Dim intNumber As Integer intNumber = 3 |
عمليات رياضی
در VB.NET ارزيابی يک عبارت از سمت راست به چپ ، انجام می شود. مثلا" در عبارت intNumber1 = intNumber1 + 1 ، در ابتدا مقدار intNumber1 + 1 ، محاسبه شده و در ادامه مقدار بدست آمده در متغير intNumber1 ، ذخيره می گردد . علامت "=" ، وظيفه يک عملگر نسبت دهی را برعهده داشته و پس از محاسبه مقدار مورد نظر آن را به متغير intNumber1 نسبت می دهد
Dim intNumber 1 As Integer intNumber1= 2 intNumber1 = intNumber1 + 1 |
عملگرهای محاسباتی
در VB.NET از عملگرهای محاسباتی زير استفاده می شود :
کاربرد | عملگر |
جمع | + |
تفريق | - |
ضرب | * |
تقسيم | / |
توان | ^ |
منفی | - |
باقيمانده | MOD |
مثال : در برنامه زير ، دو متغير به اسامی intNumber1 و intNumber2 تعريف و پس از انتساب مقدار مورد نظر به هر يک از آنان ، مقادير دو متغير با يکديگر جمع و حاصل در متغيری ديگر و با نام intNumber3 ، ذخيره می گردد .
Dim intNumber1 As Integer Dim intNumber2 As Integer Dim intNumber3 As Integer
intNumber1 = 14 intNumber2 = 12 intNumber3 = intNumber1 + intNumber2 |
به منظور مشخص نمودن اولويت انجام محاسبات در يک عبارت ، می توان از پرانتر استفاده نمود . مثلا" در کد زير ، در ابتدا مقدار موجود در متغير intNumber2 بر عدد شش تقسيم و در ادامه مقدار به دست آمده به متغير intNumber1 اضافه شده و در نهايت ، نتيجه بدست آمده در متغيری با نام intNumber3 ذخيره می گردد( استفاده از پرانتز در يک عبارت ، باعث افزايش خوانائی برنامه نيز می گردد ) .
Dim intNumber1 As Integer Dim intNumber2 As Integer Dim intNumber3 As Integer
intNumber1= 14 intNumber2 = 12 intNumber3 = intNumber1 + (intNumber2 /6 ) |
مثال : در برنامه زيراز يک رابطه ساده رياضی به منظور محاسبه ميزان ماليات ، استفاده شده است .
<Script language="vb" runat="server"> Sub Page_Load ( ) Dim intEarn As Integer Dim intTax As Integer Dim decTotal As Decimal intEarn = 150 intTax = 10 decTotal = intEarn - ( ( intEarn / 100 ) * intTax ) Display1.Text = intEarn Display2.Text = ( intEarn / 100 ) * intTax Display3.Text = decTotal End Sub </Script>
<html dir="rtl"> <head> <title> استفاده از عملگرها در يکعبارت رياضی</title> </head> <body> ميزان دستمزد: <asp:label id="Display1" runat="server" /><Br> ماليات: <asp:label id="Display2" runat="server" /><Br> مبلغ پرداختی پس از کسر ماليات : <asp:label id="Display3" runat="server" /> </body> </html> |
پس از ذخيره برنامه فوق در فايلی با نام TestTax.aspx و مشاهده آن در مرورگر ، خروجی زير را خواهيم داشت :
توضيحات : در برنامه فوق ، از سه متغير به اسامی intEarn (به منظور ذخيره ميزان دستمزد) ، intTax ( به منظور ذخيره نرخ محاسبه ماليات ) و decTotal ( به منظور ذخيره مبلغ خالص پرداختی ) ، استفاده شده است .
Dim intEarn As Integer Dim intTax As Integer Dim decTotal As Decimal |
در ادامه ، مقادير مورد نظر به متغيرهای intEarn ( مقدار 150 ) و intTax ( مقدار 10 ) ، نسبت داده شده است .
intEarn = 150 intTax = 10 |
به منظور محاسبه مبلغ قابل پرداخت ، در ابتدا ميزان ماليات با توجه به نرخ مشخص شده ( 10 درصد) ، محاسبه و پس از کسر مبلغ فوق از ميزان دستمزد ، حاصل در متغير decTotal ، ذخيره می گردد. از پرانتر به منظور مشخص نمودن اولويت محاسبات ، استفاده شده است .
decTotal = intEarn - ( ( intEarn / 100 ) * intTax ) |
در نهايت ، مقادير decTotal ، intEarn و ميزان ماليات محاسبه شده به خصلت text هر يک از کنترل های label1,label2 و label3 نسبت داده شده است ( Display1 ، Display2 و Display3 ) .
Display1.Text = intEarn Display2.Text = ( intEarn / 100 ) * intTax Display3.Text = decTotal |
عمليات بر روی رشته ها
با استفاده از عملگر "+" می توان دو متغير از نوع integer را با يکديگر جمع نمود . در صورتی که دارای دو متغير از نوع string باشيم و بخواهيم دو رشته فوق را با يکديگر ترکيب نمائيم از فرآيندی با نام Concatenation ، استفاده می شود . در دات نت به منظور اتصال رشته ها و الحاق آنان به يکديگر از دو روش مختلف استفاده می گردد : .
• روش اول : در اين روش ، رشته دوم به انتهای رشته دوم اضافه شده و رشته ای جديد ايجاد می گردد . بدين منظور از عملگر "&" ( ampersand ) ، استفاده می شود .
Dim strTest As String strTest = " Test " & "VB.NET" |
• ماحصل ترکيب دو رشته فوق ، TestVB.NET بوده که به متغير strTest نسبت داده می شود. در VB.NET به صورت اتوماتيک از فضای خالی ( Space ) استفاده نمی گردد و در صورت لزوم می توان به ميزان دلخواه فضای خالی را به عنوان يک رشته استفاده و آن را با ساير متغيرها ، ترکيب نمود . در مثال زير سه رشته که يکی از آنان Space ( که خود نيز يک رشته است ) ، می باشد با يکديگر ترکيب شده اند.
Dim strTest As String strTest = " Test " & " " & "VB.NET" |
• ماحصل ترکيب سه رشته فوق ، Test VB.NET بوده که به متغير strTest نسبت داده می شود .
• روش دوم : در اين روش برای اتصال رشته ها به يکديگر از عملگر "=+" ، استفاده می گردد . ( در متغير strTest مقدار : " TestString TestString TestString TestString " ، ذخيره می گردد).
Dim strTest As String Dim strFirst As String
strFirst ="TestString " strTest += strFirst strTest += strFirst strTest += strFirst |
مقايسه رشته ها
از عملگرهای مقايسه ای به منظور مقايسه محتويات دو متغير و انجام عمليات مورد نظر با توجه به نتايج بدست آمده ، استفاده می شود . در مواردی که متغيرها از نوع String می باشند ، امکان مقايسه و مرتب نمودن متن با توجه به اولويت هر يک از حروف الفبائی ، فراهم می گردد. جدول زير ، عملگرهای مقايسه ای را نشان می دهد .
کاربرد | عملگر |
مساوی | = |
کوچکتر | > |
کوچکتر يا مساوی | => |
نامساوی | <> |
بزرگتر | < |
بزرگتر يا مساوی | =< |
در مثال زير دو متغير از نوع String و به اسامی strName1 و strName2 تعريف و پس از نسبت دادن مقدار دلخواه به هر يک از آنان ، از عملگرهای مقايسه ای به منظور مقايسه و انجام عمليات مورد نظر استفاده شده است .
Dim strName1 As String Dim strName2 As String
strName1="Test1" strName1="HHH" If strName1 < strName2 Then Display1.Text = " Test1" If strName2 < strName1 Then Display1.Text = " HHH" |
ثوابت
ثوابت ، به منزله متغيرهائی می باشند که مقدار نسبت داده شده به آنان در زمان اجرای برنامه تغيير نمی نمايد. "نرخ محاسبه ميزان ماليات " ، نمونه ای در اين زمينه بوده که مقدار آن به ندرت تغيير می نمايد. در زمان فروش يک کالا و به منظور محاسبه ميزان ماليات مربوطه ، ممکن است به دفعات به آن مراجعه گردد . حتی اگر نرخ محاسبه ماليات تغيير يابد ، شما صرفا" مجبور به اعمال تغييرات در يک مکان ، خواهيد بود. استفاده از "ثوابت " ، خوانائی يک برنامه را افزايش و باعث تسهيل در امر نگهداری يک برنامه می گردد .
اکثر زبان های برنامه نويسی روش خاصی را به منظور تعريف "ثوابت " ، در اختيار برنامه نويسان قرار می دهند . در VB.NET به منظور تعريف يک ثابت از کليد واژه Const استفاده می گردد ( معمولا" اسامی ثوابت ، به صورت "حروف بزرگ " ، در نظر گرفته می شوند ).
پس از تعريف يک ثابت ، در صورتی که در ادامه برنامه قصد تغيير مقدار نسبت داده شده به آن را داشته باشيم ، با يک پيام خطاء مواجه خواهيم شد .
نوع های داده ساخت يافته
نوع های ساده ، صرفا" قادر به ذخيره سازی يک آيتم اطلاعاتی می باشند . در صورتی که قصد ذخيره چندين آيتم اطلاعاتی مرتبط به هم در يک برنامه را داشته باشيم ، می بايست از "نوع های داده ساختيافته " ، استفاده گردد. VB.NET دارای امکانات متعددی به منظور ذخيره نمودن اينگونه اطلاعات است ( از اشياء ديکشنری تا جدول hash و XML ) . در ادامه با "آرايه ها" که ساده ترين نوع در اين زمينه می باشند ، آشنا می شويم .
آرايه ( Array )
از آرايه ها به منظور ذخيره سازی مجموعه ای از اقلام اطلاعاتی مرتبط به هم در متغيرهائی که همگی دارای يک نام بوده و توسط يک ايندکس عددی اضافه شده به انتهای آنان شناسائی می گردند، استفاده می شود. دستورات زير نحوه تعريف يک آرايه و نسبت دهی مقدار به هر يک از عناصر آن را نشان می دهد .
Dim StrName ( 5 ) As String StrName(0) = "AAA" StrName(1) = "BBB" StrName(2) = "CCC" StrName(3) = "DDD" StrName(4) = "EEE" StrName(5) = "FFF" |
اولين ايندکس يک آرايه، صفر در نظر گرفته می شود ( Zero based ) . در مثال فوق ، شش عنصر و به ترتيب در مکان های صفر تا پنج آرايه ، ذخيره می گردند .
تعريف يک آرايه
آرايه ها نظير متغيرها می بايست با استفاده از کليد واژه Dim تعريف گردند . تعريف يک آرايه مستلزم تعريف يک پارامتر اضافی ديگر به منظور مشخص نمودن اندازه آن است . دستور زير يک آرايه با اندازه پنجاه و از نوع String را تعريف می نمايد . تمامی المان های آرايه می بايست از نوع String باشند .
Dim Strarray1 (49) As String |
آرايه های چند بعدی
در مواردی که اطلاعات دارای ماهيتی دوبعدی و مرتبط به هم می باشند ، می توان از يک آرايه دوبعدی به منظور ذخيره آنان استفاده نمود . مثلا" در صورتی که قصد ذخيره مجموعه ای از اطلاعات مرتبط به هم نظير نام و نام خانوادگی را داشته باشيم ، می توان از يک آرايه دوبعدی استفاده نمود. به منظور تعريف يک آرايه دو بعدی می بايست يک پارامتر ديگر را در زمان تعريف آرايه نيز مشخص نمائيم . دستورات زير نحوه تعريف و مقداردهی يک آرايه دو بعدی 4 * 4 از نوع string را نشان می دهد ( امکان ذخيره حداکثر شانزده عنصر در اين آرايه وجود خواهد داشت ) .
Dim strArray1 (3,3) As String ... strArray (0,0) = "AAA" strArray (0,1) = "BBB" ... |
در VB.NET امکان تعريف يک آرايه حداکثر شصت بعدی وجود خواهد داشت . استفاده از آرايه های بيش از سه بعد توصيه نشده و در صورت نياز می توان از ساير راهکاری موجود نظير بانک های اطلاعاتی ، استفاده نمود .
خلاصه
در مجموعه مقالاتی که با عنوان " نحوه ذخيره سازی اطلاعات در VB.NET " ، ارائه گرديد با موارد زير آشنا شديم :
• جايگاه استفاده از متغيرها در يک برنامه
• نحوه تعريف متغير در VB.NET و استفاده از آنان در صفحات ASP.NET
• بررسی انواع نوع های داده ساده
• نحوه انجام عمليات بر روی متغيرها و انجام برخی محاسبات ساده با استفاده از عملگرهای محاسباتی و مقايسه ای
• بررسی نوع های داده ساختيافته و نحوه استفاده از يک آرايه در برنامه
{{Fullname}} {{Creationdate}}
{{Body}}