منقول من المنتدى القديم
الكاتب احمد جمال المشرف العام
لنفهم برنامجنا الأول :
لو لاحظنا برنامجنا الأول لطباعة جملة Helow World والذي كان بالشكل التالي :
كود :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
Console.Write("Hello World");
Console.ReadKey();
}
}
}
Vb.net:
كود :
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Namespace ConsoleApplication4
Class Program
Private Shared Sub Main(ByVal args As String())
Console.Write("Hello World")
Console.ReadKey()
End Sub
End Class
End Namespace
اول ما سنجده هو استيراد المكتبات التي سنستخدمها لكتابة اكوادنا باستخدام using أو Imports في الفيجوال بيسك ، قمنا بشرح هذه الخطوة في دروس سابقة .
الجزء الثاني هو تعريف ال name space الخاص ببرنامجنا وهو الاسم الذي توضع تحته كل مكونات البرنامج ، ومن ثم ال Class الاساسي لدينا باسم Main ... كما تعلمنا في اي مبادئ للبرمجة كائنية التوجه فإن أي برنامج يتكون من واحد او اكثر من ال Classes ، الدالة الرئيسية في ال Class المسمى Main هي الدالة main والتي يتم تنفيذها اول شيء في البرنامج .
تستقبل الدالة Main مجموعة من الباميتير تحت اسم args ، معنى هذا ان البرنامج يستقبل مع تشغيله مصفوفة من args[0] إلى args[n] ، يمكن ارسال كل ما تريد إلى البرنامج من خلالها ، وهو ما يسمى Command Line Parameters .
لكي لا نبعد عن مسارنا في الشرح ، ال Command Line Args هي مجموعة من المتغيرات التي يمكن تمريرها للبرنامج وقت تشغيله لتتحكم في بعض النقاط ، مثلاً لو قمنا بكتابة الامر التالي :
كود :
Explorer "http://www.vb4arb.com"
اول ما يتم فتح برنامج Expolorer ، يقوم بقراءة النص الممرر له ، إذا كان موقع انترنت يقوم بفتحه بالشكل المعهود لمتصفح الانترنت ، اما لو كان مسار مثلاً C:/ فسيقوم بفتح متصفح المجلدات مع انهم نفس البرنامج في النهاية .
تستطيع تجربة ذلك على برنامجك من خلال قراءة المتغيرات الممرة له عن طريق For Loop :
C#:
كود :
for (int i = 0; i < args.Length; i++)
Console.WriteLine(args[i]);
Vb.net:
كود :
For i As Integer = 0 To args.Length - 1
Console.WriteLine(args(i))
Next
الآن قم بالذهاب إلى Run ، قم بكتابة مسار برنامجك ومن ثم مسافة ومن ثم كتابة البارميترات التي ترغب في تمريرها ، في جهازي كتبت الامر التالي في Run :
كود :
C:\Users\Ahmed\Documents\Visual Studio 2008\Projects\ConsoleApplication4\ConsoleApplication4\bin\Debug\consoleapplication4.exe ahmed ali
الناتج الذي ظهر لي كان بالشكل التالي :
[ATTACH=CONFIG]774[/ATTACH]
كتطبيق سريع ، سنقوم بقراءة المتغير الأول وفي حالة وجود 0 مثلاً يتم تلوين خلفية الكلام بالازرق ، وفيما عدا ذلك يتم تلوين خليفة الكلام بالأحمر ، هذا هو الكود الخاص بذلك :
C#:
كود :
if (args[0] == "0")
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.WriteLine("0 enterd");
}
else
{
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine("Empty");
}
Console.ReadKey();
VB.net:
كود :
If args(0) = "0" Then
Console.BackgroundColor = ConsoleColor.Blue
Console.WriteLine("0 enterd")
Else
Console.BackgroundColor = ConsoleColor.Red
Console.WriteLine("Empty")
End If
Console.ReadKey()
تواجهنا هنا مشكلة ، ماذا لو لم نقم بتمرير اي متغيرات .. ستظهر لك رسالة خطا ، إذن نحن بحاجة للتأكد من وجود بارمتيرس قبل قراءتها ، سنقوم بذلك عن طريق التأكد من وجود متغيرات ، إذا كان هناك فيتم التأكد من كونها صفر ، إذا اختل اي من الشرطين نلجأ للون الثاني :
C#:
كود :
if (args.Length > 0)
{
if (args[0] == "0")
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.WriteLine("0 enterd");
}
}
else
{
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine("Empty");
}
Console.ReadKey();
VB.net:
كود :
If args.Length > 0 Then
If args(0) = "0" Then
Console.BackgroundColor = ConsoleColor.Blue
Console.WriteLine("0 enterd")
End If
Else
Console.BackgroundColor = ConsoleColor.Red
Console.WriteLine("Empty")
End If
Console.ReadKey()
هناك حل آخر ، ماذا لو احببنا ان نجعل التأكد في سطر واحد بالشكل التالي :
C#:
كود :
if (args.Length >0 && args[0] == "0")
VB.net:
كود :
If args.Length > 0 AndAlso args(0) = "0" Then
هذا يعني انه سيتأكد من وجود بارميترس ، إذا وجدها سينتقل للشرط الثاني وإذا لم يجدها فإنه يخرج مباشرة دون قراءة الشرط الثاني ...
الجدير بالذكر ان المعامل And لن يمكن تطبيقه في VB.net ، بل ستضطر لاستخدام AndAlso ، تجد عنها شرحاً هنا بقلم الأخ احمد بدر :
http://vb4arb.com/vb/showthread.php?1324...0#post3920
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .