PDA

View Full Version : سوال راجع به O.O در طراحی DLL



reza6384
شنبه 16 شهریور 1387, 11:49 صبح
سلام.
من می خوام یک DLL بسازم. این dll شامل چندین کلاسه. چند تا سوال داشتم.

1- بعضی از کلاس ها رو می خوام فقط درون برنامه بتونم ازشون Instance تعریف کنم، یعنی کاربر نتونه اینکارو انجام بده.

2- بعضی از Sub یا Function های کلاس رو می خوام فقط در برنامه استفاده کنم و در سطح کاربر دیده نشه.

3- یک DataSet وجود داشته باشه که برای کاربر ReadOnly باشه و فقط از طریق متدهایی که شرایط مورد 2 رو دارن ( یعنی درون برنامه قابل دسترسی هستند نه برای کاربر ) رکوردهای اون اضافه و کم بشه.

این کارها رو چگونه باید انجام بدم؟

با تشکر

VisualStudio
شنبه 16 شهریور 1387, 13:10 عصر
- بعضی از کلاس ها رو می خوام فقط درون برنامه بتونم ازشون Instance تعریف کنم، یعنی کاربر نتونه اینکارو انجام بده.
برای این کار میبایست کلاس به صورت mustInherit باشه

بعضی از Sub یا Function های کلاس رو می خوام فقط در برنامه استفاده کنم و در سطح کاربر دیده نشه.
یا Protected یا Private

یک DataSet وجود داشته باشه که برای کاربر ReadOnly باشه و فقط از طریق متدهایی که شرایط مورد 2 رو دارن ( یعنی درون برنامه قابل دسترسی هستند نه برای کاربر ) رکوردهای اون اضافه و کم بشه.
یک متغییر از نوع private که DataSet هست تعریف کن سپس یک Property ReadOnly تعریف کن که اون متغییر را برگردونه
اگر سوال داشتی در خدمتم

reza6384
شنبه 16 شهریور 1387, 13:25 عصر
سلام.
جواب سوال اولم رو گرفتم.

اما منظور من از سوال دوم اینه : Sub یا Function ها در داخل کلاس های برنامه قابل استفاده باشند. ولی کاربر اونها رو نبینه. اگر یه تابع Private در یک کلاس تعریف کنیم، در کلاس دیگه قابل استفاده نیست.

VisualStudio
شنبه 16 شهریور 1387, 14:04 عصر
خوب تنها راه اینکه که به صورت Protected باشه

reza6384
شنبه 16 شهریور 1387, 14:56 عصر
ببخشید.
یک سوال دیگه.

برای اینکه یک عضو از کلاس ما مقادیر مشخصی رو بگیره ، باید چکار کنیم .

مثلا



Dim SP As New Io.Ports.SerialPort
SP.Parity = Io.Ports.Parity.Even یا Io.Ports.Parity.Odd


به عبارتی تعریف یک DataType

amirsajjadi
شنبه 16 شهریور 1387, 17:37 عصر
چرا یک Structure درست نمی کنی

reza6384
شنبه 16 شهریور 1387, 17:46 عصر
چرا یک Structure درست نمی کنی

میشه یک مثال ساده بزنید. ممنون

reza6384
دوشنبه 18 شهریور 1387, 12:44 عصر
ببینید. منظورم رو بهتر بگم. برای تعریف یک DataType که فقط چند تا مقدار خاص رو بگیره باید چکار کرد؟؟

مثلا MsgboxResult یکی از مقادیر زیر رو میگیره :


MsgboxResult.Yes
MsgboxResult.No
MsgboxResult.Cancel


حالا من می خوام اینکار رو برای خودم انجام بدم :



MyDataType.Value = MyDataType.Value1
MyDataType.Value = MyDataType.Value2
.
.

VisualStudio
دوشنبه 18 شهریور 1387, 13:07 عصر
دوست عزیز شما یک Enumaretion تعریف کن بعد اون عضو از کلاس از اون نوع باشه
مثلا :


Enum ActSort
Loyal
Modify
Efface
Embed
End Enum

بعد


Dim E As ActSort