اگر شما هم تا حالا برای ساخت یک استرینگ از استرینگ و عدد در C# از روشی مثل string str = “old” + (2+2).ToString() استفاده میکردید، یعنی خودتان زحمت ToString() را میکشیدید، دیگر این زحمت را نکشید. چون قانون String Concatenation در C#، شرح داده شده در بخش ۷.۸.۴ مشخصات زبانی C#، طوری است که اگر بخواهید یک عدد یا هر نوع دادهای دیگری مثل DateTime یا کلاسهای ساخت دست خودتان را به یک استرینگ اضافه کنید، آن عدد یا نوع دادهای غیر استرینگ خود به خود به استرینگ تبدیل میشود، یعنی .ToString() آن به طور خودکار فراخوانی میشود.
این موضوع را وسط یک رفتار عجیب C# پیدا کردم. یک سری کد از قبل داشتم که در آنها یک رشته به یک متغیر از نوع استرینگ میچسبید. نوع آن متغیر را بعد از مدتی به یک کلاس ساخت خودم تبدیل کردم و انتظار داشتم کامپایلر C# به آن خط گیر بدهد که نداد. به همین خاطر یک سوال در Stack Overflow پرسیدم و علت را فهمیدم.
دیدگاهها
من هم تا وقتی از Resharper استفاده نمی کردم این موضوع را نمی دانستم.
Resharper چطور کمکت کار این موضوعو بفهمی؟
سلام
Resharper
با پیغام "Remove redundant ToString"
ازت میخواد که ToString رو پاک کنی
جالب بود. فکر نمیکردم Resharper از این کارها هم بکنه.