PDA

View Full Version : مشکل هنگام تبدیل



mr_esmaily
جمعه 09 مرداد 1383, 13:01 عصر
سلام
می خواستم بپرسم چرا موقعی که من کد زیر رو وارد می کنم برنامه خطای :

Cannot convert type 'string' to 'char'

رو میگیره؟!

char Emp=(char) Console.ReadLine();

در حالی که کد زیر بدون خطا اجرا میشه:

char Emp=Convert.ToChar(Console.ReadLine());


با تشکر.

EhsanKhafan
جمعه 16 مرداد 1383, 09:58 صبح
سی شارپ با کستینگ به مدل گذشته میانه خوبی نداره.این تابع کانورت از دات نت خیلی کارا تر از کستینگه.
موفق و پیروز باشید

dot_net_lover2
دوشنبه 19 مرداد 1383, 23:27 عصر
جناب آقای خفن این مسئله ای که مطرح کردین آیا یک چیز ثابت شده است یا نظر شما است ؟

dot_net_lover2
دوشنبه 19 مرداد 1383, 23:30 عصر
جناب آقای خفن این مسئله ای که مطرح کردین آیا یک چیز ثابت شده است یا نظر شما است ؟

rsalimian
سه شنبه 20 مرداد 1383, 13:36 عصر
فکر کنم اصلا نیازی به casting ندارید دستور زیر به راحتی کار شما را انجام می دهد:

char ch = Console.readline()[0];
()readline یک رشته برمی گرداند. و شما نمی توانید رشته را به کاراکتر cast کنید.
و اما:


char Emp=Convert.ToChar(Console.ReadLine());
جواب میده چون که متد ToChar اولین کاراکتر رشته را به کاراتر تبدیل می کند.
به هر حال می توانید از روش زیر هم استفاده کنید:

object obj = Cosole.readline();

char ch = (char) obj;
البته فکر کنم به روش فوق لقمه دور سر چرخاندن هم گفته بشه. :گیج:

EhsanKhafan
شنبه 24 مرداد 1383, 11:19 صبح
با سلام
کستینگ در واقع اجرای یک عملگر یگانی است.خوب در سی شارپ بسیاری از این عملگر ها تعریف شده ولی به طور کامل میبایست از تابع دات نت استفاده کنید ویا یک عملگر جدید تعریف کنید و از تابع دات نت در آن استفاده کنید و یا میتوانید عملگر های از پیش تعریف شده را نیز override کنید و گسترش دهید.
به هر حال این که سی شارپ در کستینگ ضعیفتره رو من وقتی کار میکردم فهمیدم.البته مفهوم عملگری که یه چیزه واضحه.
امیدوارم کمک کنه
احسان