PDA

View Full Version : سوال: مقدار دادن به یک اندیس رشته



esisaeed1
سه شنبه 25 فروردین 1394, 21:34 عصر
سلام من یک ماهی هست سی شارپ کار میکنم یه سوال پیش اومد برام هرجا گشتم جوابش نبود

static void Main(string[] args)
{
string str = "Reca";
str[2] = 'z';

}


خواستم ببینم چرا خط چهارم خطا میده؟؟؟؟؟؟
هزارتا برنامه نویس اینجاست یعنی یکی جواب اینو بلد نیستتتتتت؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟

wolf_majid
سه شنبه 25 فروردین 1394, 22:44 عصر
Readonly یه
میخوای چی کار کنی ؟

rasol_afkham
سه شنبه 25 فروردین 1394, 22:46 عصر
وقتی از شماره اندیس رشته استفاده می کنید٬ به صورتی که در بالا نوشته اید٬منطق برنامه این را به صورت کاراکتر می بیند و البته کاراکتر فقط خواندنی (Read Only) و این نوع متغیرها و یا خصوصیات را نمی توان تغییر داد. شما برای تغییر دادن یک کاراکتر در یک رشته می توانید از راه های دیگری استفاده کنید. برای مثال تابع Replace و یا Substring

pouria_bayat
چهارشنبه 26 فروردین 1394, 00:02 صبح
سلام من یک ماهی هست سی شارپ کار میکنم یه سوال پیش اومد برام هرجا گشتم جوابش نبود

static void Main(string[] args)
{
string str = "Reca";
str[2] = 'z';

}


خواستم ببینم چرا خط چهارم خطا میده؟؟؟؟؟؟
هزارتا برنامه نویس اینجاست یعنی یکی جواب اینو بلد نیستتتتتت؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟



string str = "Reca";
str = str.Replace("c","z");

Javad_raouf
چهارشنبه 26 فروردین 1394, 09:20 صبح
string str = "Reca";
char[] strChars = str.ToCharArray();
strChars[2] = 'z';
str = new string(strChars);
MessageBox.Show(str);
یا این
string str = "Reca";
str = str.Substring(0, 2) + "z" + str.Substring(3);
MessageBox.Show(str);
یا اگر زیاد این کار رو می کنی می تونی یک تابع براش بنویسی:
private string CharChange(string Value, int CharInd, char NewChar)
{
return Value.Substring(0, CharInd) + NewChar + Value.Substring(CharInd + 1);
}
و بعد اینجوری فراخونیش کنی:
string str = "Reca";
str = CharChange(str, 2, 'z');
MessageBox.Show(str);

esisaeed1
چهارشنبه 26 فروردین 1394, 18:43 عصر
واقعا مرسی دوست عزیز :قلب::قلب::چشمک: