سلام دوستان .
من بعد از دو سه ماه غیبت دوباره اومدم
سوالی داشتم و اون هم این هست:
چطور میشه در یک Classes Module یا حتی در یک فرم (نه در یک ماژول) یک رشته را Public Const as String کرد.
امتحان کنید همچین چیزی ممکن نیست یعنی فقط می شود "اگر اشتباه نکنم" یک نوع Long را به این شکل تعریف کرد ...
سلام
والله من كه بيسيك بلد نيستم ولي اگر اشتباه نكنم شما بايد طول رشته تان معلوم باشد مثلا
کد:
public const str as string *20
يعني اينكه اين رشته ام 20 كاراكتري است.
و باز هم تاكيد مي كنم كه خودم هم درست نمي دونم. احتمالا اينجور باشه ....
ازتون معذرت ميخواهم
چون سوالم يكم اشتباه بود
در اصل Public Const یا سراسری کردن بک ثابت امکان نداره
من میخواهم بک ثابت رشته ای تعریف کنم که برنامم بتونه اون رو از داخل Dll به وجود آمده بخواند ...
اما همچین چیزی یعنی Public Const داخل Classes Module ممکن نیست. حتی داخل یک یوزر کنترل ... :(
کد:
Public Const Str = "Sample"
فكر كنم با اين مشكل حل بشه
حالا اگه مشكل حل شد من يه سوال در همين مورد دارم
درون يك Module این حکم که Public Const مشکلی ندارد اما درون یک Classes Module یا یوزر کنترل از Public حکم ایراد می گیرد...
این در حالیست که من می خواهم آن ثابت سراسر باشد اما VB می گوید از Const خالی یا Private Const فقط می توانید استفاده کنید :?
حالا كه باب صحبت در اين مورد باز شد من هم يه سوال دارم
چجوري مي شه يك متغير را هم استاتيك تعريف كرد و هم پابليك
يعني متغير استاتيك باشه و حالت پابليك داشته باشه
چیزی که گاهی بعضی از برنامه نویسها فراموش میکنند اصول نحوی برنامه هست .....
این اصول نحوی یا سینتکس دلایلی دارند.....
مثلا اینی که نمیتونید یک مقدار ثابت در فرم یا کلاس مدول به صورت پابلیک تعریف کنید ربط مستقیم به تعریف آبجکت داره !!
یا اینکه متغییر هم استاتیک و هم پابلیک به چه درد میخوره ؟
معمولا اگه متغییری پابلیک باشه خوب خصوصیت استاتیک را هم داره !!!
موفق باشید
پشمالو
نقل قول: معمولا اگه متغییری پابلیک باشه خوب خصوصیت استاتیک را هم داره !!!
آره راست مي گي
مسئله به همین جا ختم نمی شود :o
چطور می توان ثابت هایی را در Public Enum قرار داد و آن هم فقط با نوع داده ای long اما این تعریف برای String امکان ندارد ؟
موضوع اینجاست ... کافیست یکی دو تا از dll های معروف سیستم را که می توان درون Refrenc باز کرد را لود کنید. من با تعجب در برخی از آنهاEnum هايی را دیدم که دارای ثابت های String هستند 8O
سلام
نمي دونم من اشتباه مي كنم يا نه؟
اما در Classes Module نيازي به تعريف Const نيست حالا از هر نوعي يعني اينكه شما بايد يك خصوصيت Property از نوع فقط خواندني ReadOnly تعريف كني يعني اينكه شي گرايي اين رو مي گيه
حالا شما مي توني يك خصوصيت از هر نوعي كه مي خواي تعريف كني و متد Let رو براي اون ننويسي.
Public Enum هم كه داري مقدار رشته اي باشه معني نداره يعني اينكه شما Enum رو براي شمارش بكار مي بري نه براي مشخص كردن رشته ها. پس من مي توني يك Enum تعريف كنم كه براي هر رشته يك عدد استفاده كنم و بعد در كل برنامه به جاي اون عدد مي تونم از رشته استفاده كنم كه راحتر در ذهن باقي مي مونه
اگر من اشتباه مي كنم شما اصلاح بفرماييد
:wink:
کد:
'اين اشتباه هست
aname = "hello"
'اين درست هست
aname = 345
:wink:
دوست عزيز پيش از اين از اينكه نظر خود را فرموديد تشكر مي كنم
حرف شما كاملا درست است
اما حدف من اين است كه كاربر ضمن استفاده از توابع بداند كه از چه رشته هايي (دقيقا متون مشخص) براي ورود و استفاده از آن تابع استفاده نمايد.
گر چند (فكر مي كردم) روش شما راه ميانبر حدف من است. اما شواهد امر اين طور نشان مي دهد كه تعريف به صورت يك خصوصيت فقط خواندني تنها راه مي باشد...