02-10-12, 07:32 PM
كاتب الموضوع : samerselo
النوع Moduleيدعم فيجول ستوديو وحدة بناء برمجية تدعى Module والتي يتم التصريح عنها باستخدام الكلمة المحجوزة Module فعندما تقوم بإنشاء تطبيق كونسول مثلا يتم إنشاء ملف vb من أجلك يحتوي على الكود التالي:
كود :
Module Module1
Sub Main()
End Sub
End Moduleكود :
Module Module1
Sub Main()
' Show banner.
DisplayBanner()
' Get user's name and say howdy.
GreetUser()
End Sub
Sub DisplayBanner()
' Get the current color of the console text.
Dim currColor As ConsoleColor = Console.ForegroundColor
' Set text color to yellow.
Console.ForegroundColor = ConsoleColor.Yellow
Console.WriteLine("******* Welcome to FunWithModules *******")
Console.WriteLine("This simple program illustrates the role")
Console.WriteLine("of the Module type.")
Console.WriteLine("*****************************************")
' Reset to previous color of your console text.
Console.ForegroundColor = currColor
Console.WriteLine()
End Sub
Sub GreetUser()
Dim userName As String
Console.Write("Please enter your name: ")
userName = Console.ReadLine()
Console.WriteLine("Hello there {0}. Nice to meet ya.", userName)
End Sub
End Moduleكما أن الـ Module لا يمكن أن يتم استخدامها كنوع عند التصريح عن متغير باستخدام الكلمة المحجوزة New لأنها غير قابلة للإنشاء Non Creatable وإن استخدمت كودا شبيها بالكود التالي فإن المترجم سيعطيك خطأ
كود :
' Nope! Error, can't allocated modules!
Dim m as New Module1()كود :
Module MyModule
Public UserName As String
Sub GreetUser()
Console.WriteLine("Hello, {0}.", UserName)
End Sub
End Moduleكود :
Sub Main()
...
' Set user's name and call second form of GreetUser().
UserName = "Fred"
MyModule.GreetUser()
...
End Subأي تطبيق Vb2008 يجب أن يحتوي على نوع يحدد الطريقة Main التي تشكل نقطة الدخول للتطبيق وهي تكون موجودة عادة ضمن Module وهي طريقة مشتركة دوما Shared method مع انه يمكن أن تتواجد ضمن فئة Class عندها يجب عليك التصريح عنها باستخدام الكلمة المحجوزة Shared. وكمثال على ذلك أنشئ تطبيق كونسول جديد واستبدل كامل الكود المولد بالكود التالي
كود :
Class Program
' Unlike Modules, members in a class are not
' automatically shared. Thus, we must declare Main()
' with the Shared keyword.
Shared Sub Main()
End Sub
End Classمعالجة محددات سطر الأوامر
إحدى المهام الرئيسية للطريقة Main هي معالجة محددات سطر الأوامر التي يتم تمريرها للتطبيق فمثلا مترجم سطر الأوامر vbc.exe يمتلك العديد من الخيارات مثل target و out وغيرها فعندما تريد إنشاء طريقة Main تقوم بمعالجة محددات سطر الأوامر الممررة للتطبيق ستجد أنه لديك عدة طرق للقيام بذلك.
أول طريقة يمكننا استخدامها لهذا الغرض هو استخدام الطريقة GetCommandLineArgs المعرفة ضمن المجال System.Envitronment التي تعيد مصفوفة من العناصر من النوع String وأول عنصر في هذه المصفوفة هو اسم الملف التنفيذي للتطبيق بينما تشكل باقي عناصر المصفوفة محددات سطر الأوامر الممررة للتطبيق
كود :
Class Program
Shared Sub Main()
Console.WriteLine("***** Fun with Main() *****")
' Get command-line args.
Dim args As String() = Environment.GetCommandLineArgs()
Dim s As String
For Each s In args
Console.WriteLine("Arg: {0}", s)
Next
End Sub
End Classكود :
Shared Sub Main(ByVal args As String())
Console.WriteLine("***** Fun with Main() *****")
' Get command-line args.
Dim s As String
For Each s In args
Console.WriteLine("Arg: {0}", s)
Next
End Subيمكننا أيضا تعريف Main كوظيفة تعيد قيمة من النوع Integer الأمر الذي يعد من الموروثات من لغة C حيث يعيد البرنامج القيمة 0 عند انتهائه بصورة طبيعية أو يمكن إعادة أي قيمة أخرى تمثل خرجا ما أو رقما للخطأ الذي أدى إلى انتهاء البرنامج كما في الكود
كود :
Shared Function Main(ByVal args As String()) As Integer
Console.WriteLine("***** Fun with Main() *****")
Dim s As String
For Each s In args
Console.WriteLine("Arg: {0}", s)
Next
' Return a value to the OS.
Return 0
End Functionتمرير محددات سطر الأوامر من داخل بيئة التطوير
يمكننا فيجول ستوديو من تمرير محددات سطر الأوامر للتطبيق عند اختباره من داخل بيئة التطوير الأمر الذي يسهل علينا عملية الاختبار لما يوفر علينا من عناء تمرير تلك المحددات يدويا حيث يمكننا تمريرها أثناء الاختبار بإدخالها في مربع Command Line Arguments في الصفحة Debug من خصائص MyProject
