پروگرام ضابطہ
آئیے عمل میں آنے والے پروگرام کے ضابطہ پر ایک نظر ڈالتے ہیں۔ میں سی# کو پروگرامنگ زبان کے طور پر استعمال کر رہا ہوں، لیکن میں اس کی وضاحت اس طرح کروں گا جیسے میں کسی حد تک سی# جانتا ہوں۔ اگر آپ کو یقین نہیں ہے، سی# پروگرامنگ پر بہت سی کتابیں ہیں جو آپ پڑھ اور مطالعہ کر سکتے ہیں۔ ایسی جگہیں ہیں جہاں دیگر ویب سائٹس پر اس کی کافی وضاحت کی جاتی ہے، لہذا اگر آپ کے پاس پیسے نہیں ہیں تو ایسی جگہ تلاش کرنا اچھا ہے۔
سب سے پہلے، آئیے "پروگرام .cs" فائل کھولتے ہیں، جو پروگرام کا نقطہ آغاز بھی ہے۔ ویسے، سی# کوڈ فائلوں کی توسیع "ہے. سی ایس". ترقیاتی سکرین کے دائیں طرف حل ایکسپلورر کھولیں (صارف پر منحصر ہے)۔ کچھ صورتوں میں، کھڑکی پہلے ہی دائیں طرف پن کی گئی ہے۔ وہاں سے "پروگرام .cs" پر ڈبل کلک کریں۔
میرے خیال میں سورس ایڈیٹر کھلا ہے۔
بہتر ہے کہ آپ میں سے ہر ایک سی#کا مطالعہ کرے، لیکن فی الحال میں ان تجاویز میں کوڈ کی مختصر وضاحت کرنا چاہوں گا۔
using System;
using System.Collections.Generic;
using System.Windows.Forms;
کلاسوں کو ہمیشہ کہیں نہ کہیں نام کی جگہ پر لکھا جانا چاہئے۔ مثال کے طور پر، "فائل" کلاس، جو فائلوں سے متعلق ہے، "نظام" نیم جگہ اور "آئی او" نیم اسپیس میں شامل ہے۔ عام طور پر، "فائل" کلاس استعمال کرنے کے لیے، آپ کو تمام نام کی جگہیں اور آخر میں کلاس کا نام "نظام.آئی او.فائل" لکھنا ہوگا۔
System.IO.File f;
تاہم، اگر آپ "استعمال" بیان کا استعمال کرتے ہوئے اسے پیشگی رجسٹر کرتے ہیں، تو آپ اصل میں "فائل" کلاس استعمال کرتے وقت نیم اسپیس کو چھوڑ سکیں گے۔
using System.IO;
File f;
namespace Sample
اسے نیم اسپیس کہا جاتا ہے۔ اس میں تمام عمل درآمد پروسیسر لکھے گئے ہیں۔ نام جگہ کا نام وہی نام ہے جو آپ نے تخلیق کیا ہے۔ اگر آپ کو یہ پسند نہیں ہے، تو آپ اسے بعد میں تبدیل کر سکتے ہیں۔
static class Program
کلاس کا نام. "طبقے" کے دائیں طرف کا نام طبقاتی نام ہے۔ بنیادی طور پر، یہ سمجھنا آسان ہے کہ آیا نام مسل اور طبقاتی نام ایک ساتھ ہیں۔ "کلاس" کے بائیں طرف "جامد" عام طور پر ضروری نہیں ہے، لیکن اس "پروگرام" کلاس کے لئے، آپ کو اسے پہننے کا ایک طریقہ سوچنا چاہئے۔
<summary>
アプリケーションのメイン エントリ ポイントです。
</summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
یہ وہ جگہ ہے جہاں عمل اصل میں شروع ہوتا ہے۔ اوپر کی تین سطریں تبصرے ہیں، لہذا انہیں نظر انداز کریں۔ اس کا اصل پروسیسنگ سے کوئی تعلق نہیں ہے۔ "[ایس ٹی اے تھریڈ]" اصل میں ضروری نہیں ہو سکتا ہے، لیکن اگر آپ اسے نہیں سمجھتے ہیں، تو اسے جیسا ہے ویسا ہی لگانا زیادہ محفوظ ہے۔ اگلی سطر میں "جامد خالی مین()" طریقہ کار کا سربراہ ہے۔ اسے ویسا ہی چھوڑ دیں جب تک کہ کچھ برا نہ ہو۔ پروگرام کو اس طریقے سے انجام دیا جاتا ہے۔
「ایپلی کیشن.فعال بصری طرزیں();」 اگر آپ چاہتے ہیں کہ وہ ایکس پی طرز میں ہوں تو فارم پر آپ جو کنٹرول رکھنا چاہتے ہیں ان کی وضاحت کرتا ہے۔ اس لائن کو صرف اس صورت میں ہٹائیں جب آپ اسے پرانے کنٹرول کی طرح دکھانا چاہتے ہیں۔ بنیادی طور پر، اسے اس طرح چھوڑ دیں. 「ایپلی کیشن.سیٹ کمپیٹیبل ٹیکسٹ رینڈرنگ ڈیفالٹ(غلط)؛」 کنٹرول کی متن ڈرائنگ سے متعلق ہے، لیکن اسے بنیادی طور پر ویسا ہی چھوڑا جا سکتا ہے۔ 「ایپلی کیشن.رن(نیا فارم1());」 اصل میں ایپلی کیشن چلانے کے لئے. یہاں، ہم فارم کلاس "فارم 1" کو ایک اعلی سطح کی کھڑکی کے طور پر انجام دیں گے۔ "فارم 1" کھڑکی کی کلاس ہے جو پہلے "ڈیبگ ایکسیکیوشن" میں دکھائی گئی تھی۔
آئیے اس "فارم 1" کلاس پر ایک نظر ڈالتے ہیں۔ حل کھوج کار میں "فارم1.cs" مسل پر دائیں کلک کریں اور اسے "کوڈ ویو" میں دکھائیں۔
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Sample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
یہ بنیادی طور پر "فارم 1" کلاس میں لکھا گیا تمام کوڈ ہے۔ صرف وہ حصے جو "پروگرام" کلاس سے مختلف ہیں ان کی وضاحت کی گئی ہے۔
public partial class Form1 : Form
غور کریں کہ "عوامی" ایک ایسی چیز ہے جو آپ ہمیشہ اس وقت لگاتے ہیں جب آپ ایک کلاس بناتے ہیں (یہ کچھ معاملات میں تبدیل ہوسکتا ہے)۔ کلاسیں بنیادی طور پر "عوامی" ہیں، لہذا میں انہیں جاری رکھوں گا۔ "جزوی" ایک کلاس کو متعدد فائلوں میں تقسیم کرنے کے لیے استعمال کیا جاتا ہے۔ یہ ان طبقات کے لئے بھی ضروری ہے جو شکلیں بناتے ہیں۔ آخر میں "فارم" ایک کلاس ہے جو "سسٹم.ونڈوز.فارمز" نیم اسپیس سے تعلق رکھتی ہے۔ مندرجہ بالا کوڈ میں، "نظام استعمال کرتے ہوئے۔ونڈوز.فارم؛" اسے مختصر کے لیے "فارم" کے نام سے لکھا گیا ہے۔ اگر آپ کلاس کے نام "فارم 1" کے بعد ":فارم" شامل کرتے ہیں تو اس کا مطلب ہے "فارم 1 کلاس جو فارم کلاس سے وراثت میں ملی ہے"۔ یاد رکھیں، آپ جس کلاس کو فارم بنا رہے ہیں وہ بنیادی طور پر ایسا ہی نظر آتا ہے۔
public Form1()
{
InitializeComponent();
}
یہ ایک طریقہ ہے، لیکن اسے "تعمیر کار" کہا جاتا ہے۔ طریقہ کار کا نام ہمیشہ طبقاتی نام کے برابر ہوتا ہے۔ کنسٹرکٹر کو کلاس بنانے کے فورا بعد ہمیشہ پھانسی دی جاتی ہے۔ اوپر "پروگرام" کلاس میں، "ایپلی کیشن.رن(نیا فارم1()));" ہم "فارم 1" کلاس بنانے کے لئے "نئے" آپریٹر کا استعمال کر رہے ہیں۔ لہذا، اس تعمیر کار کو ہمیشہ انجام دیا جاتا ہے۔ اب، کنسٹرکٹر کے اندر ایک "ابتدائی جزو()" طریقہ کار نافذ کیا گیا ہے۔ "فارم 1" کلاس کا کوڈ صرف ایک ہے جس کا میں نے ذکر کیا ہے، لیکن کلاس دراصل دو فائلوں میں تقسیم ہے۔ حل ایکسپلورر میں، "فارم 1.cs" فائل کے آگے ایک "+" بٹن ہے، لہذا اسے دبانے کی کوشش کریں۔
"فارم 1.ڈیزائنر .cs" فائل سامنے آئی۔ اصل میں اس مسل میں "ابتدائی جزو" طریقہ کار کا جسم بیان کیا گیا ہے۔
پہلی بات تو یہ ہے کہ "ابتدائی جزو" طریقہ کار کے ذریعے کس طرح کی پروسیسنگ کی جاتی ہے کہ "فارم 1" کلاس کی "ڈیزائنر" سکرین پر سیٹ کردہ ڈیٹا کو اصل میں پروگرام کے ذریعہ پروسیس کیے گئے مشمولات سے بدل دیا جاتا ہے۔ لہذا، اگر آپ "ڈیزائنر" سکرین پر پراپرٹیز وغیرہ تبدیل کرتے ہیں، تو "فارم 1.ڈیزائنر .cs" فائل میں کوڈ حقیقی وقت میں دوبارہ لکھا جائے گا۔ دوسرے لفظوں میں، کلاس کو دو فائلوں میں تقسیم کیا جاتا ہے تاکہ پروگرامر کو براہ راست کوڈ میں ترمیم نہ کرنا پڑے۔ لہذا، آپ کو تفصیلی کوڈ کو دیکھنے کی ضرورت نہیں ہے، تاکہ آپ فائل کے کوڈ کا خلاصہ پیش کر سکیں کہ اس طرح بہت مختصر طور پر تدوین کی جائے۔ یہ سی# 2.0 کا ایک منفرد فائدہ ہے، جو بدقسمتی سے یہ فیچر پیش نہیں کرتا ہے۔ یہ ایک وجہ ہے کہ میں سی# 2.0 کے لئے جا رہا ہوں. (ویسے، سی# 1.0 ویژیول سٹوڈیو 2002 اور 2003 میں معیاری ہے، اور سی# 2.0 ویژیول سٹوڈیو 2005 پر مبنی ہے.)
اگر آپ "فارم 1.ڈیزائنر .cs" کے مندرجات دیکھنا چاہتے ہیں تو آپ اسے دیکھنے کے لیے ڈبل کلک کر سکتے ہیں۔ میں سمجھتا ہوں کہ یہ حیرت انگیز طور پر مددگار ثابت ہوگا۔ کچھ معاملات میں، آپ کو اس میں ترمیم کرنے کی ضرورت پڑ سکتی ہے، لہذا یہ ایک نظر ڈالنے کے قابل ہے۔
اب جب کہ ہم نے پروجیکٹ بنانے کے فورا بعد کوڈ کی وضاحت مکمل کر لی ہے۔ آئیے ترتیبات کو تھوڑا سا تبدیل کرتے ہیں۔
پروجیکٹ بنانے کے بعد فارم کا نام (کلاس) ہمیشہ "فارم 1" ہوتا ہے۔ میرے خیال میں شاید چند سے زیادہ لوگ ہیں جو یہ پسند نہیں کرتے، تو آئیے نام تبدیل کرتے ہیں۔ چونکہ یہ مرکزی کھڑکی ہوگی، آئیے اسے "مین فارم" کے طور پر آزمائیں۔
سب سے پہلے، حل ایکسپلورر سے، "فارم 1.cs" پر دائیں کلک کریں اور "نام تبدیل کریں" پر کلک کریں۔
چونکہ اس کا نام تبدیل کیا جا سکتا ہے، اس لیے اسے "مین فارم .cs" کے نام سے دوبارہ لکھا جائے گا۔
نیچے والے مکالمے کی طرح ایک مکالمہ دکھایا گیا ہے، لہذا "ہاں" بٹن دبائیں۔ (یہ باہر نہیں آ سکتا ہے.) اس صورت میں، آپ کو دستی طور پر اسے ری فیکٹر وغیرہ کے ساتھ تبدیل کرنے کی ضرورت ہے)
اس کے بعد "فارم 1" سے متعلق ہر چیز کا نام تبدیل کر کے "مین فارم" رکھ دیا جائے گا۔ تمام طبقاتی نام بھی تبدیل ہو جائیں گے۔ یہ اتنا آسان ہے، ہے نا؟