PDA

View Full Version : تفاوت تابع Clear با رشته خالی برای خالی گردن متن تکست باکس



mohamad_torabi
دوشنبه 19 خرداد 1393, 20:30 عصر
سلام وقتی ویخواید شما تکست باکس رو خالی کنید از کدوم استفاده میکنید؟تفاوتشون در چیه؟
روش اول:

textBoxX1.Clear();

و یا

textBoxX1.Text += "";

keyone72
دوشنبه 19 خرداد 1393, 21:23 عصر
فرقی نمیکنه داداش البته این باید باشه

textBoxX1.Text = "";




بنظرم باید فرقش رو با ResetText()
میپرسیدی

Hadoop
سه شنبه 20 خرداد 1393, 05:09 صبح
تفاوت دارند

اولی : مقدار تکست رو NULL میکند.
دومی: مقدار آنرا به string.Empty تغییر میدهد.

keyone72
سه شنبه 20 خرداد 1393, 16:47 عصر
تفاوت دارند

اولی : مقدار تکست رو NULL میکند.
دومی: مقدار آنرا به string.Empty تغییر میدهد.

فدات رئییس جفتش خالی میکنه و هیچ فرقی نداره
روش اول یک روش دستی هست روش دوم روشی هست که خوده سی شارپ براش متد گزاشته

omid nasri
سه شنبه 20 خرداد 1393, 19:11 عصر
نمی دونم اما طرف امد سوال بپرسه ، من رو هم سوال پیچ کرد ؟ اخه دوست گرامی این کد کی خالی می کنه ؟

textBoxX1.Text += "";




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

keyone72
سه شنبه 20 خرداد 1393, 19:16 عصر
نمی دونم اما طرف امد سوال بپرسه ، من رو هم سوال پیچ کرد ؟ اخه دوست گرامی این کد کی خالی می کنه ؟

textBoxX1.Text += "";




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

شاید اشتباه نوشتن

omid nasri
سه شنبه 20 خرداد 1393, 19:19 عصر
احتمال زیاد خیلی هستش، اما دوستان چرا تاکید نکردن رو کد؟ به هر حال شکل درست اقای کیوان نوشتن

mohammad2407
سه شنبه 20 خرداد 1393, 19:27 عصر
فرق داره خیلی فرق داره همیشه از کد زیر استفاده کنید


textBoxX1.Text=string.Empty;


نمونه و مثال


string str = "";
switch(str)
{
case string.Empty: // Error: A constant value is expected.
break;

case "":
break;

}

mohamad_torabi
سه شنبه 20 خرداد 1393, 19:37 عصر
نمی دونم اما طرف امد سوال بپرسه ، من رو هم سوال پیچ کرد ؟ اخه دوست گرامی این کد کی خالی می کنه ؟

textBoxX1.Text += "";




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

چون کد رو کپی کردم بعلاوه اش اضافی هست

keyone72
سه شنبه 20 خرداد 1393, 19:46 عصر
فرق داره خیلی فرق داره همیشه از کد زیر استفاده کنید


textBoxX1.Text=string.Empty;


نمونه و مثال


string str = "";
switch(str)
{
case string.Empty: // Error: A constant value is expected.
break;

case "":
break;

}


شما میتونی چهار پنچ راه پیدا کنی واسه خالی کردنش هیچ فرقی هم نمیکنه
هرجور طرف راحته یادستی یا به کمک c#
دیگه این ارور چه ربطی اصل قضیه داره

samin_panahi
چهارشنبه 21 خرداد 1393, 00:32 صبح
شما میتونی چهار پنچ راه پیدا کنی واسه خالی کردنش هیچ فرقی هم نمیکنه
هرجور طرف راحته یادستی یا به کمک C#‎
دیگه این ارور چه ربطی اصل قضیه داره

دوستان یکی می خواد فقط برنامه بنویسه

یکی می خواد درست و اصولی بنویسه

این روشی که جناب mohammad2407 (http://barnamenevis.org/member.php?224293-mohammad2407) گفتند روش اصولیش بود

ممکنه به همه ی این روش ها تکست باکس خالی بشه

ولی این ظاهر قضیه هست، چیزیه که کاربر می بینه

اما خیلی وقتا چیزایی که از نظر ظاهری برای ما یکسانن و کار مشابه ایی انجام می دن از نظر سیستم با هم فرق می کنن

تا جایی که من می دونم null با "" برای سیستم یکسان نیست

mohamad_torabi
چهارشنبه 21 خرداد 1393, 00:52 صبح
دوستان یکی می خواد فقط برنامه بنویسه

یکی می خواد درست و اصولی بنویسه

این روشی که جناب mohammad2407 (http://barnamenevis.org/member.php?224293-mohammad2407) گفتند روش اصولیش بود

ممکنه به همه ی این روش ها تکست باکس خالی بشه

ولی این ظاهر قضیه هست، چیزیه که کاربر می بینه

اما خیلی وقتا چیزایی که از نظر ظاهری برای ما یکسانن و کار مشابه ایی انجام می دن از نظر سیستم با هم فرق می کنن

تا جایی که من می دونم null با "" برای سیستم یکسان نیست

من نیز دنبال روش اصولی بوده و هستم

Hadoop
چهارشنبه 21 خرداد 1393, 06:07 صبح
همونطور که یک دفعه هم تو پست قبلم گفتم Clear مقدار NULL به تکست باکس میده.
کارهای دیگری هم میکنه. مثلا ریسورسها رو آزاد کنه . کرت رو ریست کنه . سلکشن رو ریست کنه .

نسبت دادن رشته خالی در سمت راست هم کاریست عبث و غیر حرفه ای . بیخود یک آبجکت جدید ایجاد میشه تا نسبت داده بشه.
همیشه هر وقت میخواهی رشته خالی درست کنی در عوض از string.Empty استفاده کن

این هم سورس کد این متد از ماکروسافت .



///<include file='doc\TextBoxBase.uex' path='docs/doc[@for="TextBoxBase.Clear"]/*' />
///<devdoc>
///<para>
/// Clears all text from the text box control.
///</para>
///</devdoc>
public void Clear() {
Text = null;
}