برای هر برنامه ی کنسولی در C++ یا C# باید یک تابع اصلی به نام main تعریف شود. اجرای برنامه از این تابع شروع می شود. در تعریف main میتوان آن را بدون پارامتر اعلان کرد (یا از کلمه void استفاده کرد) یا پارمتر هایی برای آن تعریف کرد که تابع بتواند اطلاعاتی را از Command Line دریافت کند. اطلاعاتی که در Command Line برای پارامتر های تابع main وارد می شود، همیشه به عنوان string تفسیر می شوند. برای مثال می توانید پارامتر های تابع main را به صورت زیر تعریف کنید (نام ها اختیاری هستند..):

void main (int argc, char* argv[])
{
دستورات 
}

پارامتر اول از نوع int ، تعداد رشته هایی است که در خط فرمان وارد می شود که شامل نام خود فایل اجرایی (نام برنامه) نیز می شود. پارامتر دوم، نگهدارنده ی اشاره گر هایی به آن رشته ها - به اضافه ی عنصر null - است. پس همیشه مقدار argc حداقل 1 و طول آرایه ی argv ، حداقل 2 است؛ چون حداقل باید نام برنامه را در خط فرمان وارد کنید تا برنامه اجرا شود. مقدار این دو پارامتر به ورودی شما در خط فرمان بستگی دارد. برای مثال اگر تنها نام برنامه را وارد کنید مانند:

Program_name.exe

تنها یک رشته که نام برنامه است به برنامه فرستاده می شود و در این صورت argc دارای مقدار 1 و argv دارای دو عنصر (یکی نام برنامه و دیگری null ) خواهد بود. همین طور اگر ورودی را به صورت زیر تغییر دهیم، مقدار و طول این دو پارامتر تغییر می کند.

Program_name.exe and some other information

گفتیم که تمام اطلاعاتی که به Command Line وارد می کنید به صورت string تفسیر می شود. فضای خالی (space) بین کلمات ورودی باعث تفکیک آنها می شود و باعث می شود که برنامه آنها را به عنوان یک رشته ی مجزا بشناسد. برای مثال ورودی زیر به عنوان 5 رشته تفسیر می شود و آنها تک تک در argv ذخیره می شوند.

Program_name.exe and 2 other names!
این رشته ها عبارتند از :
argv[0] = "Program_namr.exe"
argv[1] = "and"
argv[2] = "2"
argv[3] = "other"
argv[4] = "names"

اگر خواسته باشید یک رشته را به برنانه ارسال کنید که دارای فضای خالی (space) باشد و برنامه آن را به صورت یک رشته تک درنظر بگیرد، باید آن را بین دو علامت " قرار دهید. مانند زیر :

Program_name.exe "this is a test!"

در این صورت "this is a test" به عنوان یک رشته ی مستقل در نظر گرفته می شود. برای تست و آزمایش این اطلاعات بهتر است Command Prompt ویژوال استدیو یا Command Prompt ویندوز را باز کرده و خودتان روش های مختلف را امتحان کنید...
اگر از کار با Command Line راحت نیستید، می توانید در خود Visual Studio نیز این آرگومان ها را مشخص کنید. برای این کار به آدرس زیر بروید و اطلاعات خود را وارد کنید :

Project Properties > Configuration Properties > Debugging > Command Arguments


در ویژوال استدیو هنگامی که یک پروژه ی کنسولی را ایجاد می کنید، این آرگومان ها به صورت خودکار توسط IDE ایجاد می شوند. بعضی از پروژه ها از کد های مدیریت شده و برخی دیگر از کد های مدیریت نشده برای این کار استفاده می کنند. برای مثال در یک پروژه ی CLR ، این آرگومان ها به صورت زیر در می آید:

(array < System::String^ > ^ argv)

یا در C# به صورت زیر در می آید :

(string[] args)

در پروژه های مختلف نام و عملکرد این آرگومان ها کمی با هم متفاوت است ولی از دید کلی، همگی وظیفه یکسانی دارند.

Ivor Hortons "Beginnig Visual C++ 2010"