PDA

View Full Version : سوال: درخواست توضیح درباره public و... در متدها



saeedhushmand
پنج شنبه 04 خرداد 1391, 13:27 عصر
در یک متد هر کدام از public ، private ، static ، void چه معنی می ده
اگر چیز دیگری هم هست اضافه کنند و دربارش توضیح بدهند ممنون می شم.....

IMANAZADI
پنج شنبه 04 خرداد 1391, 14:13 عصر
تابع های void مقداری بر نمی گردونه
تابع های private فقط داخل همون کلاس قابل دسترسی هستند
تابع های Public در کلاس های دیگر هم قابل دسترسی هستند
استاتیک هم مقادیر ثابت بدون تغییر هستند

amirxbest
پنج شنبه 04 خرداد 1391, 15:01 عصر
هرگاه شما یه متد ایستاتیک تعریف کنی دیگه لازم نیست که از اون کلاس شی بسازی تا بتونی از اون متد استفاده کنی نام کلاس رو مینویسی و نقطه میزاری و بعد متد ایستاتیک رو فراخوانی میکنی مثل متد writeline از کلاس system.موفق باشید

mohammad272005
جمعه 05 خرداد 1391, 01:34 صبح
با سلام.
شما تلفیق access modification و inheritance رو سوال کردید
access modifierها:
private: فقط کلاس جاری حق دسترسی به این عضو رو داره
protected: فقط خود کلاس، و childهاش حق دسترسی دارن
internal: فقط assembly جاری حق داره.
internal protected: فقط childها در assmebly جاری حق دارن
public: همه میبینن و میتونن استفاده کنن.
(تذکر: reflection همه چیز رو میبره زیر سوال)
inheritance modifierها:
abstract: یعنی بدنه این member در کلاسِ جاری نیست و کلاسهای پایینتر، موظفن این عضو رو پیاده سازی کنن
virtual: این اولین پیاده سازی از یه memeber هست و کلاسهای پایینتر حق دارن دوباره پیاده سازیش کنن.
override: این یه پیاده ساریه دیگه از یه عضو virtual هست.
sealed: این آخرین پیاده ساری یه عضو virtual هست و دیگه کلاسهای پایینتر، حق این کار رو ندارن
new: (مخصوص #C و نه در OOP) درسته این عضو، در کلاس بالایی، virtual نشده ولی این کلاس میخواد پیاده سازیش کنه.
static: نیازی به instanceگیری واسه استفاده نیست. و مستقیما قابل استفاده هست. (inheritance modifierها روی این member، قابل انجام نیستن)

ko-mohammad
جمعه 05 خرداد 1391, 11:06 صبح
internal: فقط assembly جاری حق داره.
internal protected: فقط childها در assmebly جاری حق دارن
(تذکر: reflection همه چیز رو میبره زیر سوال)

ممنون بابت توضیحاتتون، فقط دوسوال:
1-assembly جاری یعنی چی؟
2-اون تذکرتون رو هم یه خورده باز می کنید؟

mohammad272005
جمعه 05 خرداد 1391, 12:13 عصر
assembly جاری یعنی dll یا فایل exeی که الان پروژه‏اش رو دارید مینویسید.
reflection هم یه علم هست در NET. که با کمک اون میشه دل و روده کلاسهای توی دل یه assembly دیگه رو که سورسش رو نداریم، بکشیم بیرون. البته این فقط قسمتی از قدرت reflection هست. reflection خیلی کارهای دیگه هم میکنه و قسمتهای بزرگی از NET. وابسته به همین علم هست. مثل LINQ و EF