تبليغاتX
Free Domains Hosting at .co.nr
آموزش برنامه نویسی کامپیوتر و الکترونیک
آموزش برنامه نویسی کامپیوتر و الکترونیک
اقبال سهرابی(09356614309) پاسخگوی مشکلات شما در زمینه الکترونیک,کامپیوتر و اینترنت می باشد.
خانه آرشیو مطالب تماس با من در صورتی که هر سوال فوری در زمینه کامپیوتر و الکترونیک دارید با شماره 09356614309(اقبال سهرابی) تماس بگیرید
درباره وبلاگ
آموزش C# ، آموزش برنامه نویسی ، آموزش کامپیوتر ، آموزش الکترونیک ، و خرید برخی محصولات بسیار مهم و کاربردی .
راهنمایی جهت ایجاد وبسایت و معرفی بهترین سرویس دهنگان اینترنتی .
و همچنین معرفی بهترین سایتهای تجارت الکترونیکی در ایران.
با تشکر
- اقبال سهرابی -
منوي اصلي
صفحه نخست
آرشيو مطالب
پست الکترونیک
موضوعات مطالب
وبسایت کسب در آمد
تجارت الکترونیکی
آموزش
آموزش هك (Learning Hack)
موبایل
----- آموزش زبان #C ----
زبانهای خارجی
الکترونیک
آرشيو مطالب
نويسندگان
اقبال سهرابی
الناز
سامان A
آقا مجید
بازدید کنندگان
کمال بهرامی
دکتر محسن
فرزاد حسینی
مهسا(بیدار)
پيوندهاي روزانه
Username & Password For NOD 32
حق و صبر
فعال کردن ویندوز XP با استفاده از Windows_xp_Genuine_Advantage دانلود آن
کرمانشاه -راهنمای جامع -
شرکت نانو Nano Kurd
---- وبلاگ آموزش ایرانیان -----
حقوق زن
زندگی !
$$$$ تجارت بدون سرمایه $$$$
برترین وبلاگ شعر دنیا
کلاه برداران و معتبر ترین سایت
برترین تجارت جهان
پيوندها
صبا
مهر
عاشقانه
آموزش الکترونیک
وبلاگ آموزش ایرانیان
آموزش آنلاین زبان انگلیسی
آموزش درس مبانی علم رايانه
پلکهای خیس
تقدیم به عاشقان
وبلاگی دیگر از ما
* آموزش برنامه نويسي ايرانيان *
عکسهای عاشقانه،عرفانی ومختلف
بزرگترين فروشگاه فيلم و سريال
یه روزایی ...
تجارت در ایران مارکت سنتر
خرس قهوه ای (مهسا)
قالب وبلاگ
امكانات





Powered by WebGozar

درس دهم – ويژگيها در C#

   

در اين درس با ويژگيها (Properties) در زبان C# آشنا خواهيم شد. اهداف اين درس به شرح زير مي‌باشد :

·         موارد استفاده از Property ها

·         پياده‌سازي Property

·         ايجاد Property فقط خواندني (Read-Only)

·         ايجاد Property فقط نوشتني (Write-Only)

 

Property ها امكان ايجاد حفاظت از فيلدهاي يك كلاس را از طريق خواندن و نوشتن بوسيله Property را فراهم مي‌نمايد. Property ها علاوه بر اينكه از فيلدهاي يك كلاس حفاظت مي‌كنند، همانند يك فيلد قابل دسترسي هستند. بمنظور درك ارزش Property ها بهتر است ابتدا به روش كلاسيك كپسوله كردن متدها توجه نماييد.

 

مثال 1-10 : يك نمونه از چگونگي دسترسي به فيلدهاي كلاس به طريقه كلاسيك

using System;

public class PropertyHolder

{

private int someProperty = 0;

public int getSomeProperty()

{

return someProperty;

}

public void setSomeProperty(int propValue)

{

someProperty = propValue;

}

}

public class PropertyTester

{

public static int Main(string[] args)

{

PropertyHolder propHold = new PropertyHolder();

propHold.setSomeProperty(5);

Console.WriteLine("Property Value: {0}", propHold.getSomeProperty());

return 0;

}

}

مثال 1-10 روش كلاسيك دسترسي به فيلدهاي يك كلاس را نشان مي‌دهد. كلاس PropertyHolder داراي فيلدي است تمايل داريم به آن دسترسي داشته باشيم. اين كلاس داراي دو متد getSomeProperty() و setSomePropery() مي‌باشد. متد getSomeProperty() مقدار فيلد someProperty را باز مي‌گرداند و متد setSomeProperty() مقداري را به فيلد someProperty تخصيص مي‌دهد.

 

كلاس PropertyTester از متدهاي كلاس PropertyHolder جهت دريافت مقدار فيلد someProperty از كلاس PropertyHolder استفاده مي‌كند. در متد Main() نمونه جديدي از شي PropertyHolder با نام propHold ايجاد مي‌گردد. سپس بوسيله متد setSomeProperty، مقدار someMethod از propHold برابر با 5 مي‌گردد و سپس برنامه مقدار property را با استفاده از فراخواني متد Console.WriteLine() در خروجي نمايش مي‌دهد. آرگومان مورد استفاده براي بدست آوردن مقدار property فراخواني به متد getSomeProperty() است كه توسط آن عبارت “Property Value : 5” در خروجي نمايش داده مي‌شود.

 

چنين متد دسترسي به اطلاعات فيلد بسيار خوب است چرا كه از نظريه كپسوله كردن شيء‌گرايي پشتيباني مي‌كند. اگر پياده‌سازي someProperty نيز تغيير يابد و مثلا از حالت int به byte تغيير يابد، باز هم اين متد كار خواهد كرد. حال همين مسئله با استفاده از خواص Property ها بسيار ساده‌تر پياده‌سازي مي‌گردد. به مثال زير توجه نماييد.

 

مثال 2-10 : دسترسي به فيلدهاي كلاس به استفاده از Property ها

using System;

public class PropertyHolder

{

private int someProperty = 0;

public int SomeProperty

{

get

{

return someProperty;

}

set

{

someProperty = value;

}

}

}

public class PropertyTester

{

public static int Main(string[] args)

{

PropertyHolder propHold = new PropertyHolder();

propHold.SomeProperty = 5;

Console.WriteLine("Property Value: {0}", propHold.SomeProperty);

return 0;

   }

}

 

مثال 2-10 چگونگي ايجاد و استفاده از ويژگيها (Property) را نشان مي‌دهد. كلاس PropertyHolder داراي پياده‌سازي از ويژگي SomeProperty است. توجه نماييد كه اوليد حرف از نام ويژگي با حرف بزرگ نوشته شده و اين تنها تفاوت ميان اسم ويژگي SomeProperty و فيلد someProperty مي‌باشد. ويژگي داراي دو accessor با نامهاي set و get است. accessor get مقدار  فيلد someProperty را باز مي‌گرداند. set accessor نيز با استفاده از مقدار value، مقداري را به someProperty تخصيص مي‌دهد. كلمه value كه در set accessor آورده شده است جزو كلمات رزرو شده زبان C# مي‌باشد.

 

كلاس PropertyTester از ويژگي someProperty مربوط به كلاس PropertyHolder استفاده مي‌كند. اولين خط در متد Main() شي‌اي از نوع PropertyHolder با نام propHold ايجاد مي‌نمايد. سپس مقدار فيلد someProperty مربوط به شيء propHold، با استفاده از ويژگي SomeProperty به 5 تغيير مي‌يابد و ملاحظه مي‌نماييد كه مسئله به همين سادگي است و تنها كافي است تا مقدار مورد نظر را به ويژگي تخصيص دهيم.

 

پس از آن، متد Console.WriteLine() مقدار فيلد someProperty شيء propHold را چاپ مي‌نمايد. اين عمل با استفاده از ويژگي SomeProperty شيء propHold صورت مي‌گيرد.

 

ويژگيها را مي‌توان طوري ايجاد نمود كه فقط خواندني (Read-Only) باشند. براي اين منظور تنها كافيست تا در ويژگي فقط از get accessor استفاده نماييم. به مثال زير توجه نماييد.

 

ويژگيهاي فقط خواندني (Read-Only Properties)

مثال 3-10 : ويژگيهاي فقط خواندني

using System;

public class PropertyHolder

{

private int someProperty = 0;

public PropertyHolder(int propVal)

{

someProperty = propVal;

}

public int SomeProperty

{

get

{

return someProperty;

}

}

}

public class PropertyTester

{

public static int Main(string[] args)

{

PropertyHolder propHold = new PropertyHolder(5);

Console.WriteLine("Property Value: {0}", propHold.SomeProperty);

return 0;

}

}

 

مثال 3-10 چگونگي ايجاد يك ويژگي فقط خواندني را نشان مي‌دهد. كلاس PropertyHolder داراي ويژگي SomeProperty است كه فقط get accessor را پياده‌سازي مي‌كند. اين كلاس PropertyHolder داراي سازنده‌ايست كه پارامتري از نوع int دريافت مي‌نمايد.

 

متد Main() از كلاس PropertyTester شيء جديدي از PropertyHolder با نام propHold ايجاد مي‌نمايد. اين نمونه از كلاس PropertyHolder از سازندة آن كه مقداري صحيح را بعنوان پارامتر دريافت مي‌كند، استفاده مي‌كند. در اين مثال اين مقدار برابر با 5 در نظر گرفته مي‌شود. اين امر باعث تخصيص داده شدن عدد 5 به فيلد someProperty از شيء propHold مي‌شود.

 

تا زمانيكه ويژگي SomeProperty از كلاس PropertyHolder فقط خواندني است، هيچ راهي براي تغيير مقدار فيلد someProperty وجود ندارد. بعنوان مثال در صورتيكه عبارت propHold.SomeProperty = 7 را در كد برنامه اضافه نماييد، برنامة شما كامپايل نخواهد شد چراكه ويژگي SomeProperty فقط خواندني است. اما اگر از اين ويژگي در متد Console.WriteLine() استفاده نماييد بخوبي كار خواهد كرد زيرا اين دستور تنها يك فرآيند خواندن است و با استفاده از get accessor اين عمل قابل اجرا است.

 

ويژگيهاي فقط نوشتني (Write-Only Properties)

به مثال زير توجه فرماييد :

 

مثال 4-10 : ويژگيهاي فقط خواندني

using System;

public class PropertyHolder

{

private int someProperty = 0;

public int SomeProperty

{

set

{

someProperty = value;

Console.WriteLine("someProperty is equal to {0}", someProperty);

}

}

}

public class PropertyTester

{

public static int Main(string[] args)

{

PropertyHolder propHold = new PropertyHolder();

propHold.SomeProperty = 5;

return 0;

}

}

 

مثال 4-10 چگونگي ايجاد و استفاده از ويژگي فقط نوشتني را نشان مي‌دهد. در اين حالت get accessor را از ويژگي SomeProperty حذف كرده و به جاي آن set accessor را قرار داده‌ايم.

 

متد Main() كلاس PropertyTester شي‌اي جديد از همين كلاس با سازندة پيش فرض آن ايجاد مي‌نمايد. سپس با استفاده از ويژگي SomeProperty از شيء propHold، مقدار 5 را به فيلد someProperty مربوط به شيء propHold تخصيص مي‌دهد. در اين حالت set accessor مربوط به ويژگي SomeProperty فراخواني شده و مقدار 5 را به فيلد  someProperty تخصيص مي‌دهد و سپس عبارت someProperty is equal to 5”  “را در خروجي نمايش مي‌دهد.

 

خلاصه

در اين درس با ويژگيها آشنا شديد و نحوه استفاده از آنها را فرا گرفتيد. روشهاي كلاسيك كپسوله كردن از طريق استفاده از متدهاي مجزا صورت مي‌گرفت ولي با استفاده از ويژگيها (Property) مي‌توان به اجزاي يك شيء همانند يك فيلد دسترسي پيدا كرد. ويژگيها را مي‌توان به صورت فقط خواندني و يا فقط نوشتني نيز ايجاد نمود. با استفاده از ويژگيها دسترسي مستقيم به فيلدهاي مورد نظر از يك كلاس از بين رفته و اين دسترسي تنها از طريق ويژگي مورد نظر امكان‌پذير مي‌گردد.

 


نوشته شده در پنجشنبه 8 فروردین1381 توسط اقبال سهرابی | لينك ثابت |
عناوين آخرين مطالب ارسالي
» درسهای #c
» بهترین وبسایت کسب در آمد اینترنتی در ایران
» آموزش C#
» آموزش هك (Learning Hack) بهترین سی دی آ موزشی - پرداخت هزینه درب منزل
» پشتیبان گیری از وبلاگ بلاگفا به روشی بسیار سریع تر از خود بلاگفا و مطمئن تر
» مواردی که تا حالا در موبایل نشنیده اید
» پذیرش نویسنده برای وبلاگ
» نرم افزار ارسال SMS گروهی 8 تومانی !
» تکنیکهای تست زنی در کنکور
» آموزش پيشرفته زبان انگليسي
» آموزش جامع تعميرات موبايل پیشرفته
» بهترین وبسایت خرید اینترنتی
» الکترونیک بخش اول
» ره مه زان گیان ها ته وه
» بهترین ویسایت کسب در آمد در ایران
» حذف اطلاعات و فایلها برای همیشه ....
» خدایا کفر نمی گویم
» زبان نگاه
» مضرات استفاده طولانی از موبایل
» مفهوم شبکه سلولی
» ما در کجای این هستی قرار داریم ...
» انواع کدهای موبال
» ترفندهای موبایل
» در مورد شبکه های موبایل
» شعر جدید زندگی انسانها .... Humans Life
» طراحی صفحات وب (ASP.NET)+دانلود کتاب ای اس پی دات نت بطور کامل
» سهام رایگان جهانی
» سخنان عجیب اینشتین
» چگونه Eset smart security را کراک و به روز نماییم ؟
» چگونه Eset smart security را کراک و به روز نماییم ؟

700dolar

اقبال سهرابی

700dolar

http://700dolar.blogfa.com

آموزش برنامه نویسی کامپیوتر و الکترونیک

آموزش برنامه نویسی کامپیوتر و الکترونیک - درس دهم – ويژگيها در C#

آموزش برنامه نویسی کامپیوتر و الکترونیک

آموزش C# ، آموزش برنامه نویسی ، آموزش کامپیوتر ، آموزش الکترونیک ، و خرید برخی محصولات بسیار مهم و کاربردی .
راهنمایی جهت ایجاد وبسایت و معرفی بهترین سرویس دهنگان اینترنتی .
و همچنین معرفی بهترین سایتهای تجارت الکترونیکی در ایران.
با تشکر
- اقبال سهرابی - اقبال سهرابی(09356614309) پاسخگوی مشکلات شما در زمینه الکترونیک,کامپیوتر و اینترنت می باشد.

آموزش برنامه نویسی کامپیوتر و الکترونیک

قالب بلاگفا