مقدمات برنامه‌نویسی با VB.net

  • شروع کننده موضوع
  • #1

trustme

لنگر انداخته
ارسال‌ها
2,810
امتیاز
900
نام مرکز سمپاد
شهید بهشتی
شهر
کاشان
سال فارغ التحصیلی
1387
دانشگاه
دانشگاه خواجه نصیر طوسی
رشته دانشگاه
مهندسی مکانیک
همیشه زبان برنامه نویسی مجهول VB.net هستش! نمی خواستم مدام تکرار کنم «توی VB.net ..»
سعی کردم زیاد کشش ندم !

اولین تفاوتی که با C می بینین اینه که از سمی کولن خبری نیست «;»
نوشتن اعداد به صورت ده‌ده‌ی است که معمول نوشتن همست.
تعریف متغیرها و ثابت‌ها به صورت های مختلف با دسترسی های مختلف است. توی نسخه .net متغیر های محلی معنا پیدا کردن که در VB6 اینطور نبود. (جلوتر بیشتر با اینا آشنا می شیم)
Dim/Private/Public/ReadOnly/Const/Friend Variable1,Variable2 As String
Dim intVar As Integer = 10​
فرق نحوه ی تعریف کردن رو خودتون در توضیحاتی که در هنگام کد نوشتن نشون داده می شه، ببینین.

دستور انتصاب این طوری شناخته می شه:
Const VariableName (As Integer) = Value​
و کد نوشتن ما یه کم فرق داره! بذارین یه کد بذارم تا روی اون تیکه کد توضیح بدم.
Public Class Form1

Dim Clicks As Integer = 0

Private Sub Button1_Click _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click

Clicks += 1
If Clicks = 3 Then
MYFunction()
ElseIf Clicks > 5 Then
'Some Works!
Else
'Some Works!
End If
End Sub

Private Function MYFunction _
(Optional ByVal Cl As Integer = 17)

Me.Text = "Clicks: " + CStr(Cl)
End Function

End Class
در زبان برنامه نویسی VB.net شما با کلاس ها کار می کنین (یعنی برنامه هاتون با کلاس تر از VB6 هستش) از خط اول کدی که براتون گذاشتم معلومه!
بهترین جا برای تعریف متغیر های درون کلاستون که می تونین به انتخاب شما اجازه ی دسترسی دیگر کلاس ها به اطلاعات رو بدن، خط های اولیه ی کلاس هستش. اینطوری نظم و فهم برنامتون بیشتر می شه.
نحوه ی تعریف توابع و ساب ها رو در مثال می بینین! کلمه ی معرفی نوع دستری که ضروری نیست (مثل:Private) و بعد کلمه ی کلیدی Function/Sub و بعد هم اسم مورد استفاده و داخل پرانتز آرگومان ها.
تعریف آرگومان ها هم مثل تعریف متغیر هستش فقط یه کم فرق داره! کلمه ی ByVal نشون می ده شما فقط مقدار متغیر ورودی رو می گیرین و تغییرات رو اون تاثیری در متغیر اصلی که برای فراخوانی استفاده شده، نداره. به جای ByVal می شه از ByRef استفاده کرد که اینطوری تغییرات ما روی متغیر فراخوانده شده می مونه!
اگه به بعد از پرانتز ساب Button1_Click نگاه کنین می بینین نوشته : Handles Button1.Click! این نشون می ده که این ساب به رویداد کلیک فرم بستگی داره. این تغییر در نحوه ی نوشتن با vb6 متفاوته. در اون زبان خبری از این تیکه کد نبود! اسم تابع شما معرف این بود که رویداد کنترل‌ه یا نه! به هر حال با این امکان جدید می تونین چند روال رو به یک ساب متصل کنید. یعنی براتون فرق نکنه که روی دکمی اولی کلیک شده یا دومی! (برای فهمیدن اینکه روی دکمه ی اولی کلیک شده یا دومی تابع دارای آرگومان sender هست که بعدا شاید ازش استفاده کردیم :D )
این سه خط تعریف ساب رو اگه با دقت نگاه کنین میبینین آخر همشون یه «_» گذاشته شده! این باعث می شه که بتونین خطتون رو در چند خط بنویسین! برای خط های طولانی به کار میاد! منم برای گفتن این مطلب و جا شدن در صفحه این کار رو کردم :D
اولین کد ِ ساب رو اگه ببینین به یه امکان جدید بر می خورین که در vb6 نبوده! این امکان در C++ هست! علاوه بر علامت «+=»، علامت های دیگه هم هستن! تفریق و ضرب و تقسیم(صحیح و اعشاری) توان و اند(&: برای رشته ها)! اما خوشبختانه یا متاسفانه خبری از ++ نیست! دلیلش هم تغییر نظر ماکروساف در مورد ++ است! به نظر اونا خوندن و فهم کد رو بی جهت سخت می کنه! خوب به ما ربطی نداره! بگذریم!
ساختار شرط ها هم کلمات شروع و انتها دارن و از علامت ها {} خبری نیست! دقت کنین که برای عمل بولی تساوی لازم نیست == بنویسین. یه مساوی کفایت می کنه! ساختار Elseif هم که ظاهرا معلومه و معنی کل IF ما می شه:
اگه تعداد کلیک ها 3 تاست، فلان تابع رو فراخوانی کن، اگه تعداد کلیک ها 3 و بیش از 5 تاست ... اگه نه که .... !
کد هاییی رو که نمی خوایم کامپایل و اجرا بشن رو با علامت تک کتیشن در ابتداش مشخص میکنیم و رنگش سبز می شه!

در مورد تعریف تابع همون طور که می بینین یه چیز جدیدی (Optional) وجود داره! شما در vb6 مجبور نبودین که مقدار اولیه مشخص کنین و خالی بودن این متغیر باعث بروز خطا و سختی کار در برنامتون می شد! ولی در .net مجبوریم به خاطر خودمون هم که شده مقدار اولی براش مشخص کنیم! کاره این کلمه هم اینه که موقع فراخوانی تابع مجبور نیستین مقدار بدین! اگه هم خواستین با یه مقدار خواصی تا بع فراخوانی بشه خوب مقدار می دین!

بهترین پیشنهاد من کار کردن در محیط برنامه نویسیه و اینکه بدونین کدی نمی نویسیم که به سیستم آسیب برسونه! پس بنویسین! تا اینجا فعلا بسه!
 
  • شروع کننده موضوع
  • #2

trustme

لنگر انداخته
ارسال‌ها
2,810
امتیاز
900
نام مرکز سمپاد
شهید بهشتی
شهر
کاشان
سال فارغ التحصیلی
1387
دانشگاه
دانشگاه خواجه نصیر طوسی
رشته دانشگاه
مهندسی مکانیک
چند ساختار مورد نیاز در VB.net

قصد دارم این دفعه چند ساختار مهم و پرکاربرد VB رو براتون بگم. البته من شکل دستور ها توی VB.net و VB رو مقایسه می کنم.
ساختار While
VB6:
While Condition
‘codes
Wend

Vb.net:
While Condition
‘codes
End While
همون طور که دیدین .net علاقه‌مند شده که پایان ساختارهاش End داشته باشن.
کار While هم اینه که : تا هنگامی که شرط برقرار است، کدهای خودش رو اجرا می کنه!

ساختار Do
Do (While /until)
‘codes
Loop (While /until)​
این ساختار 5 حالت داره!
1- اولیش Do..Loop خالیه که برای همیشه اجرا می شه تا شما با کدهاتون ازش خارج بشین.
2- Do While Conditio..Loop ، تا وقتی که Condition مقدار درست(True) داره، حلقه اجرا می‌شه اگر هم مقدار اولیش غلط باشه، اصلا کدهای توی حلقه اجرا نمی شن!
3- Do Until Condition..Loop، اینقدر کدهای حلقه رو اجرا می کنه تا مقار Condition درست(True) بشه!
4- Do..Loop While Condition، یه بار کدهای حلقه رو اجرا می کنه تا به Loop برسه، بعد اگه شرط درست بود، بر می گرده و تا وقتی شرط درسته، کدهای حلقه رو اجرا می کنه.
5- Do..Loop Until Condition، یه بار کدها رو اجرا می کنه تا به Loop برسه، اگه شرط نادرست بود، اینقدر کدها رو انجام می ده تا شرط درست بشه!

ساختار For..Next
VB6:
For intVar=StartNumber To EndNumber (Step intVar)
‘Codes
Next (intVar)
همونطور که می بینین حلقه ی For..Next اسم یه متغیر می خواد و مقادیر اولیه و انتها. Step هم نشون می ده که هر بار حلقه اجرا شد، چندتا به متغیر اضافه کنه؛ پیش‌فرض 1 هستش و لازم نیست بنویسین.
اگر مقدار اولیه از انتها بزرگتر باشه باید Step منفی باشه تا اجرا بشه. اگر هم مقدار Step صفر باشه، هیچ وقت به پایان نمی رسیم طبیعتاً !
VB.net همین ساختار رو پشتیبانی می کنه با مخلفات!
یادتون هست گفتم تعریف متغیر در .net به صورت محلی یا بلوکی امکان پذیره !؟
For i As Integer = 1 To 10
Dim t As Integer
t += 1
If t > 2 Then Exit For
Next
همونطور که توی کدبالا می بینین، متغیر ساختار For..Next در جا تعریف شده! توی ساختار For..Next هم متغیر t تعریف شده! اما هیچ کدوم از اینا و مقدار هاشون بیرون از ساختار قابل دسترسی نیستن! هر وقت هم کد برگرده به ساختار، متغیر های t,i مقدارهای خودشون رو خواهند داشت. در ضمن! بیرون از حلقه اگه این بخواین متغیر t,i رو معرفی کنین، نمی شه! چون باعث از بین رفتن متغیر های داخل حلقه می شه و .net از شما اشکال می گیره.
توجه کردین که برای خارج شدن از ساختار های While /Do/For می تونین از دستور Exit While /Do/For استفاده کنین. همچنین با دستور Exit Sub/Function می شه از ساب یا تابع خارج شد!

ساختار Try..Catch..Finally..End Try
این ساختار در .net اضافه شده و برای بررسی error های احتمالی به کار می‌ره!
VB.net:
Try
'raise error!
Catch ex As Exception
'code For raised error
Finally
'code Do finally!
End Try
در قسمت try، کدی که احتمال bug داره رو می نویسیم. در قسمت Catch می تونین با استفاده از متغیر ex ببینیم چه نوع errorی داده! کدهای قسمت Finally چه errorی باشه، چه نه، اجرا می شن. البته اگه کدهای قسمت Catch یا Finally، error بدن، پیغام خطا ایجاد می شه و شما نمی تونین توی همین ساختار بهشون رسیدگی کنین! مجبورین دوباره یه try..End Try درست کنین!
حالا یه کم با این کدها کار کنین تا بدونین چه موقعی بهتره از چه ساختاری استفاده کنین!
 
  • لایک
امتیازات: Kenji
  • شروع کننده موضوع
  • #3

trustme

لنگر انداخته
ارسال‌ها
2,810
امتیاز
900
نام مرکز سمپاد
شهید بهشتی
شهر
کاشان
سال فارغ التحصیلی
1387
دانشگاه
دانشگاه خواجه نصیر طوسی
رشته دانشگاه
مهندسی مکانیک
پاسخ : مقدمات برنامه‌نویسی با VB.net

مجموعه دات نت انواع داده ای زير را پشتيبانی می کند:

• Boolean: جهت مقادير درست يا نادرست
• Byte: جهت مقادير صحيح صفر تا ۲۵۵ (تنها مقادير مثبت)
• Char: جهت مقادير نويسه ها يا حروف يونيکد
• Date: جهت مقادير تاريخ و زمان بين اول ژانويه ۰۰۰۱ و ۳۱ دسامبر ۹۹۹۹
• Decimal: جهت مقادير صحيح بين صفر و مثبت و منفی ۷۹,۲۲۸,۱۶۲,۵۱۴,۲۶۴,۳۳۷,۵۹۳,۵۴۳,۹۵۰,۳۳۵ (۱۶ بايت)
• Double: جهت مقادير اعشاری با دقت مضاعف
• Integre: جهت مقادير صحيح بين +۲,۱۴۷,۴۸۳,۶۴۷ و -۲,۱۴۷,۴۸۳,۶۴۸ (۴ بايت)
• Long: جهت مقادير صحيح بين -۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸ و +۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۷ (۸ بايت)
• Short: جهت مقادير صحيح بين -۳۲,۷۶۸ و +۳۲,۷۶۷ (۲ بايت)
• Single: جهت مقادير اعشاری با دقت واحد
• String: جهت مقادير رشته ای با تعداد حروف صفر تا دو ميليارد حرف

پر کاربردترين انواع داده ای عبارتند از Integer، Decimal، Date، Boolean و String.

دقت کنيد که نوع داده ای Currency يا Money برای مقادير پولی در نظر گرفته نشده است و شما می توانيد برای مقادير پولی از نوع Decimal استفاده کنيد.
 
  • لایک
امتیازات: Kenji

NOOB

کاربر فوق‌فعال
ارسال‌ها
93
امتیاز
21
نام مرکز سمپاد
راهنمایی شهید هاشمی نژاد 1 مشهد
شهر
مشهد
مدال المپیاد
المپیاد کشوری زبان ++C
پاسخ : مقدمات برنامه‌نویسی با VB.net

سلام
خیلی ممنون
فقط اگه اینا رو به جای نقل قول تو کد می گذاشتید بهتر نبود ؟!!؟
 

A GIRL

کاربر فعال
ارسال‌ها
67
امتیاز
4
نام مرکز سمپاد
فرزانگان 1 تهران
شهر
طهران، تهران
مدال المپیاد
بیخیال
پاسخ : مقدمات برنامه‌نویسی با VB.net

به قول شما سیمی کولن !!!!!

همین سیمی کولن که شما میگی، خیلی به خوانا تر شدن برنامه کمک می کنه. البته اینو کسی که پروژه ی کوچک داشته متوجه نمیشه. منظورم با شما نبودا ... کلا میگم. در پروژه های چند هزار فایلی و چند هزار خطی
 

dr.eniac

لنگر انداخته
ارسال‌ها
3,641
امتیاز
7,852
نام مرکز سمپاد
شهید بهشتی نیشابور
دانشگاه
علوم‌پزشکی مازندران
رشته دانشگاه
دندان‌پزشکی
پاسخ : مقدمات برنامه‌نویسی با VB.net

به نقل از A GIRL :
به قول شما سیمی کولن !!!!!

همین سیمی کولن که شما میگی، خیلی به خوانا تر شدن برنامه کمک می کنه. البته اینو کسی که پروژه ی کوچک داشته متوجه نمیشه. منظورم با شما نبودا ... کلا میگم. در پروژه های چند هزار فایلی و چند هزار خطی
منم باهات موافقم
من چند تا برنامه گرافيكي با vb نوشتم اصلا نميشد بازخونيش كرد(يعني خيلي سخت بود)
ولي تو c# از اين مشكلا نيست به خاطر همون سيمي كالون ها
 

A GIRL

کاربر فعال
ارسال‌ها
67
امتیاز
4
نام مرکز سمپاد
فرزانگان 1 تهران
شهر
طهران، تهران
مدال المپیاد
بیخیال
پاسخ : مقدمات برنامه‌نویسی با VB.net

البته فقط این نیست. در ++C هر سختی ای که وجود داره باعث بهتر شدن برنامه میشه.
 
ارسال‌ها
3,101
امتیاز
12,185
نام مرکز سمپاد
.
شهر
.
سال فارغ التحصیلی
2000
رشته دانشگاه
فیزیک
پاسخ : مقدمات برنامه‌نویسی با VB.net

البته نمیشه اسمش رو سختی گذاشت. نیاز به داشتن صبر و حوصله ویژگی اصلی CPP هه.
 

FarnaazZz

کاربر نیمه‌فعال
ارسال‌ها
12
امتیاز
4
نام مرکز سمپاد
فرزانگان 1 تهران
شهر
تهران
رشته دانشگاه
مکانیک! کامپیوتر!!!!
پاسخ : مقدمات برنامه‌نویسی با VB.net

خیلی خوب بود!
مرسی!
 

امـیـن

کاربر فعال
ارسال‌ها
23
امتیاز
154
پاسخ : مقدمات برنامه‌نویسی با VB.net

ببخشید یه سوالی داشتم از خدمتتون !! :D :D :D :D :D
من برنامه نویسی مخصوصا با VB رو خیلی دوست دارم ولی از بخت بد من نمیتونم VB6 رو روی windows 7 نصب کنم!! :(( :(( :(( :((
میخواستم بپرسم که آیا مشکل از منه که نمیتونم نصب کنم #-o #-o #-o یا این که کلا نمیشه VB6 رو روی windows 7 نصب کرد !!! :(( :(( :((
حالا من چیکار کنم ؟؟؟ :-/ :-/ :-/ :-/ :-/
ممنون میشم کمکم کنین :) :) :) :) :)
 

The Smith

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,061
امتیاز
3,545
نام مرکز سمپاد
سلام ایران‌زمین
پاسخ : مقدمات برنامه‌نویسی با VB.net

به نقل از امـیـن :
ببخشید یه سوالی داشتم از خدمتتون !! :D :D :D :D :D
من برنامه نویسی مخصوصا با VB رو خیلی دوست دارم ولی از بخت بد من نمیتونم VB6 رو روی windows 7 نصب کنم!! :(( :(( :(( :((
میخواستم بپرسم که آیا مشکل از منه که نمیتونم نصب کنم #-o #-o #-o یا این که کلا نمیشه VB6 رو روی windows 7 نصب کرد !!! :(( :(( :((
حالا من چیکار کنم ؟؟؟ :-/ :-/ :-/ :-/ :-/
ممنون میشم کمکم کنین :) :) :) :) :)
مشکلت با Microsoft Visual Studio 2010 حل میشه
نصبش کن برو حالشو ببر (;
 

امـیـن

کاربر فعال
ارسال‌ها
23
امتیاز
154
پاسخ : مقدمات برنامه‌نویسی با VB.net

به نقل از hitro :
مشکلت با Microsoft Visual Studio 2010 حل میشه
نصبش کن برو حالشو ببر (;
آره نصب کردم ولی خب نتونستم باهاش کار کنم :( :( :( :( :( :( :(
خیلی با VB6 فرق داره :(( :(( :(( :(( گیر الکی میده !!!!!!! یا برای این که یه خط بکشیم باید چهار سطر برنامه بنویسیم
ما تو راهنمایی با VB6 کار میکردیم با این محیط زیاد آشنا نیستم :(( :(( :(( :(( :(( :((
-------------------------------------
یعنی راه دیگه ای نیست ؟؟؟؟؟؟ :(( :(( :(( :(( :((
 

The Smith

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,061
امتیاز
3,545
نام مرکز سمپاد
سلام ایران‌زمین
پاسخ : مقدمات برنامه‌نویسی با VB.net

به نقل از امـیـن :
آره نصب کردم ولی خب نتونستم باهاش کار کنم :( :( :( :( :( :( :(
خیلی با VB6 فرق داره :(( :(( :(( :(( گیر الکی میده !!!!!!! یا برای این که یه خط بکشیم باید چهار سطر برنامه بنویسیم
ما تو راهنمایی با VB6 کار میکردیم با این محیط زیاد آشنا نیستم :(( :(( :(( :(( :(( :((
-------------------------------------
یعنی راه دیگه ای نیست ؟؟؟؟؟؟ :(( :(( :(( :(( :((
خوب اینو بخون تو :)
http://www.fortypoundhead.com/showcontent.asp?artid=20502
 

erfan_b

کاربر جدید
ارسال‌ها
4
امتیاز
0
نام مرکز سمپاد
علامه حلی 5
شهر
تهران
پاسخ : مقدمات برنامه‌نویسی با VB.net

مردم رو اسکل کردی هاااااااااااااا X_X ~X(
 

arminsl

کاربر حرفه‌ای
ارسال‌ها
335
امتیاز
1,297
نام مرکز سمپاد
شهید بهشتی
شهر
نیشابور
دانشگاه
دانشگاه تهران
رشته دانشگاه
بیوتکنولوژی
پاسخ : مقدمات برنامه‌نویسی با VB.net

دات نت با وی بی ‏6‏ فرق چندانی نداره.
من وی بی ‏6‏ رو هم رو ویندوز ‏7‏ نصب کردم و اجرا شد.
فقط فارسی رو پشتیبانی نمیکنه.
کلا دات نت خیلی بهتره.خیلی!‏
نرم افزار شبیه ساز ویندوز xp‏ تو ‏ 7‏ هست.از اونا هم میشه استفاده کرد.
 

1111mm

کاربر فوق‌فعال
ارسال‌ها
154
امتیاز
585
نام مرکز سمپاد
فرز
پاسخ : مقدمات برنامه‌نویسی با VB.net

تاپیک عالی... مچکریم :لایک
 
بالا