PDA

View Full Version : سوال: scope ها



maminb
یک شنبه 13 دی 1388, 11:18 صبح
سلام عزیزان.

اگه ممکنه توضیح بدید که هر یک از کلمات که قبل از تعریف ساب ها یا متغیر ها می آیند چه scope ای مشخص میکنند.

مثلا کلمات Private - Public - Friend - Protected - Shared - Shadows - MustOverride - NotOverridable - NotOverridable - Overridable - Overrides - Overloads - Protected Friend و....

Computer.Programmer
یک شنبه 13 دی 1388, 14:25 عصر
سلام عزیزان.



اگه ممکنه توضیح بدید که هر یک از کلمات که قبل از تعریف ساب ها یا متغیر ها می آیند چه scope ای مشخص میکنند.


مثلا کلمات Private - Public - Friend - Protected - Shared - Shadows - MustOverride - NotOverridable - NotOverridable - Overridable - Overrides - Overloads - Protected Friend و....


دوست عزیز تمام کلماتی که شما ذکر کردی مربوط به Scope نمی شه. از این کلماتی که گفتید فقط عبارات زیر برای تعریف محدودۀ کلاس یا یک ساب بکار میره:

Public: عمومی و سراسری بالا ترین سطح از نظر دسترسی داره
Protected: اجزاه دسترسی در همان کلاس و کلاس های تقسیم شده اش می دهد.
Friend: اجزه دسترسی به کلاس هایی می دهد که در همان اسمبلی قرار دارند
ProtectedFriedn: ترکیبی از دوتای بالاس
Private: کاملاً خصوصی و فقط اجازه دسترسی در همان کلاس را می دهد.

مابقیه کلماتی که شما گفتید هر کدام کار دیگه ای می کنند.

موفق باشید

maminb
یک شنبه 13 دی 1388, 14:31 عصر
ممنون میشم کاربرد بقیه رو هم بگید.

راستی فرق Static و Public چیه؟

Computer.Programmer
یک شنبه 13 دی 1388, 15:20 عصر
ممنون میشم کاربرد بقیه رو هم بگید.





Overloads: برای زمانی استفاده می شود که شما می خواهید دو تابع با یک نام داشته باشید که در این حالت می توانید برای هر تابع آرگومان های خاصی را تعریف نمایید.

Overrides: زمانی به کار میرود که بخواهید برای تابعی که از کلاس دیگری ارث می برد کد بنویسیم و آنرا کنترل کنیم. مثلاً شما در کلاس Form تابع Pain اجرا می شود حالا اگر بخواهید این تابع را کنترل کنید باید ان را Overrides کنید

Overridable: اجزاه این را می دهد که تابعی را که شما نوشته اید توسط کلاس دیگر Overrides شود.

NotOverridable: اجازه Override کردن را می گیرد.

MustOverride: زمانی استفاده می شود که این تابع حتماً باید Override شود. همچنین این عبارت را زمانی می توان استفاده کرد کلاس شما با عبارت MustInherits تعریف شود.

Shadows: با استفاده از این عبارت می توان توابع تعریف شده در کلاس پایه را مجددا تعریف نمود و از اسامی آنها دوباره استفاده کرد. البته استفاده از کلمه Public قبل از این عبارت باعث چنین کاری می شود و اگر عبارت Private استفاده شود در زمان فراخوانی برنامه تابعی را اجرا می کند که در سطح پایین تر قرار دارد.







راستی فرق Static و Public چیه؟





Static با Public قابل قیاس نیست چون Static اشاره به ماندگاری متغیر داره ولی Public اشاره به حوزه کاری متغیر. زمانی که شما متغیری را با Static تعریف نمایید این مقدار این متغیر پایدار خواهد ماند.


تمام مطالب بالا دانسته های خودم بود و بعید نیست که جایی از توضیحات اشتباه باشه

موفق باشید

maminb
یک شنبه 13 دی 1388, 15:31 عصر
خیلی خیلی ممنون که بهم جواب دادید.

اگه تونستید و وقت کردید یه مثال جامع که همه ی اینا توش باشه آپلود کنید.

بازم ممنون!:بوس:

امین.