PDA

View Full Version : تفاوت Ctype(x,Double) , Convert.Todouble(x) , Cdbl(x) va



hossein-khoshseyar
جمعه 12 آذر 1389, 09:39 صبح
با سلام
این سه خط همه خروجیشون یه چیز هست


Ctype(x,Double)
Convert.ToDouble(x)
CDbl(x)


می خوام بدونم اینا چه فرقی با هم دارن (از لحاظ سرعت و...)

و شما برای کد نویسی با کدوم یکی از اینا کار تبدیل خودتون رو انجام می دید
ممنون

hossein-khoshseyar
یک شنبه 14 آذر 1389, 18:26 عصر
یعنی از این اعضای تالار VB.NET کسی جواب این سئوال رو نمی دونه !!!

Parham.D
یک شنبه 14 آذر 1389, 21:00 عصر
خب به MSDN مراجعه کنید.

hossein-khoshseyar
یک شنبه 14 آذر 1389, 21:16 عصر
خب به MSDN مراجعه کنید.
این کار رو کردم اما متاسفانه نیمود اینا رو با هم مقایسه کنه و تک تک راجع به هرکدوم صحبت کرده

Parham.D
دوشنبه 15 آذر 1389, 22:02 عصر
Ctype: یک نوع تبدیل هست که فقط در زبان VB استفاده میشود و و یک عبارت (متغیر) را دریافت میکند و به یکی از این موارد تبدیل میکند: (data type, object, structure, class, or interface). این نوع تبدیل میتواند یک نوع مقداری را به یک نوع ارجاعی تبدیل کند، مانند این مثال: با فرض بر این که i یک int هست داریم . . . Dim o AS Object = Ctype(i, Object) ' Boxing.

CDBL: بین نوع‏های ابتدایی VB استفاده میشود و برای کارایی بالاتر؛ به صورت Inline کامپایل میشود (فقط در VB). این روش تبدیل عبارت دریافت شده را نمیتواند به نوعهای مختلف تبدیل کند (مانند Ctype) بلکه فقط میتواند به نوع خودش یعنی Double تبدیل کند. این روش تبدیل از تنظیمات محلی سیستم برای تبدیل استفاده میکند، مانند جداکننده سه رقم برای پول یا اعداد عادی. معادل a= (double) b در سی شارپ هست. (به گمانم)

Convert.ToDouble: این کلاس تبدیل در دات نت قرار دارد و بین VB و C# مشترک هست. کلا بین نوعهایی که اینترفیس System.Iconvertible را پیاده سازی میکنند استفاده میشود. پس این نمونه تبدیل بستگی به زبان خاصی ندارد و دات نت در زبانهایی مختلف آن را به یک مدل اجرا و نمایش میدهد.

همانطور که میبینی همه در کل شبیه هم هستند، اما در جزئیات با هم تفاوت دارد و بستگی به شرایط برنامه شما و نوع الگریتمی دارید باید از آنها استفاده کنید.

hossein-khoshseyar
سه شنبه 16 آذر 1389, 08:49 صبح
Ctype:
CDBL: بین نوع‏های ابتدایی VB استفاده میشود و برای کارایی بالاتر؛ به صورت Inline کامپایل میشود (فقط در VB). این روش تبدیل عبارت دریافت شده را نمیتواند به نوعهای مختلف تبدیل کند (مانند Ctype) بلکه فقط میتواند به نوع خودش یعنی Double تبدیل کند. این روش تبدیل از تنظیمات محلی سیستم برای تبدیل استفاده میکند، مانند جداکننده سه رقم برای پول یا اعداد عادی. معادل a= (double) b در سی شارپ هست. (به گمانم)
.

البته من فکر می کنم که a=(double)b معدل Ctype وی بی هست
اما بازم از پاسخت ممنون