نمایش نتایج 1 تا 5 از 5

نام تاپیک: از دست خطای Use of unassigned local variable

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    تبریز
    پست
    318

    Angry از دست خطای Use of unassigned local variable

    با سلام خدمت دوستان مهندسم ...
    با نهایت شرمندگی ولی من یکی دیگه کم آوردم :


    class tt
    {
    public string get(string str)
    {
    string status ;
    string[] returnValues ;
    returnValues = new string[5];
    returnValues = str.Split(',');
    if (returnValues.Length == 0)
    status = "Results:" + "No new incoming were found...";
    else if (returnValues.Length > 1)
    foreach (string retVal in returnValues)
    status = "Results:" + "#1\n" + retVal.ToString();
    else
    status = "Exception occurred";

    return status ;
    }

    }


    برا اینکه با خطای Use of unassigned local variable 'status' مواجه نشم status باید چه طور تعریف کنم ؟

  2. #2
    کاربر دائمی آواتار alireza_s_84
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    اهواز
    پست
    1,191

    نقل قول: از دست خطای Use of unassigned local variable

    سلام:
    status = ""

    یا اینکه:
    status = "Exception occurred";

    و else آخری رو میتونی حذف کنی.
    حله دیگه انشا...

  3. #3
    کاربر دائمی آواتار sinashahab
    تاریخ عضویت
    تیر 1387
    محل زندگی
    تهران و ترک کامپیوتر D:
    پست
    715

    نقل قول: از دست خطای Use of unassigned local variable

    این کد صحیح :
    public string get(string str)
    {
    string status;
    string[] returnValues;
    returnValues = new string[5];
    returnValues = str.Split(',');
    if (returnValues.Length == 0)
    status = "Results:" + "No new incoming were found...";
    else if (returnValues.Length > 0)
    {
    status = "";
    foreach (string retVal in returnValues)
    status = "Results:" + "#1\n" + retVal.ToString();
    }
    else
    status = "Exception occurred";

    return status;
    }
    شما توی شرط دوم میگید اگه بیشتر از یه آرایه داشت اون حلقه اجرا بشه که کارتون درسته .

    ولی VS اون شرط رو درست حساب می کنه ولی برای حلقه امکان خالی بودن هم حساب می کنه.

    شما باید قبل از حلقه متغییر رو مقدار دهی کنید.

  4. #4

    نقل قول: از دست خطای Use of unassigned local variable

    با سلام خدمت دوستان

    شرمنده میدونم این تاپیک مال خلی وقت پیشه امانخواستم جدید باز کنم
    بنده هم همین مشکل رو دارم وممنون میشم راهنمایی کنید
    دوستان کلا من 14تا
    if (enumerator is IDisposable)

    توی کل برنامم دارم و به همه این 14 تا گیر داده و ول کنم نیس این اولیشه

    private void getlnks(string src)
    {
    try
    {
    Regex regex = new Regex("\\bhref\\S*=\"/url\\?q=(http://\\S*?)&amp");
    MatchCollection matchCollection = regex.Matches(src);
    try
    {
    IEnumerator enumerator = matchCollection.GetEnumerator();
    while (enumerator.MoveNext())
    {
    Match match = (Match)enumerator.Current;
    if (match.Groups[1].Value.ToString().StartsWith("http://", StringComparison.CurrentCultureIgnoreCase) && !(match.Groups[1].Value.ToString().Contains("www.google.com") || match.Groups[1].Value.ToString().Contains("www.youtube.com") || match.Groups[1].Value.ToString().Contains("page2rss.com")) && this.URLDecode(System.Convert.ToString(match.Group s[1].Value.ToString())).Contains("=") && this.chklist.InvokeRequired)
    {
    this.chkadder(this.URLDecode(System.Convert.ToStri ng(match.Groups[1].Value.ToString())));
    }
    }
    }
    finally
    {
    IEnumerator enumerator;
    if (enumerator is IDisposable)
    {
    (enumerator as IDisposable).Dispose();
    }
    }
    }
    catch (Exception expr_134)
    {
    ProjectData.SetProjectError(expr_134);
    Exception ex = expr_134;
    MessageBox.Show(ex.Message);
    ProjectData.ClearProjectError();
    }
    }


    واین از وسط کد هس

    public void startb_Click(object sender, EventArgs e)
    {
    try
    {
    IEnumerator enumerator = this.GroupBox1.Controls.GetEnumerator();
    while (enumerator.MoveNext())
    {
    Control control = (Control)enumerator.Current;
    if (Operators.CompareString(control.Name, "stop2b", false) != 0)
    {
    control.Enabled = false;
    }
    }
    }
    finally
    {
    IEnumerator enumerator;
    if (enumerator is IDisposable)
    {
    (enumerator as IDisposable).Dispose();
    }
    }
    try
    {
    IEnumerator enumerator2 = this.GroupBox2.Controls.GetEnumerator();
    while (enumerator2.MoveNext())
    {
    Control control2 = (Control)enumerator2.Current;
    control2.Enabled = false;
    }
    }
    finally
    {
    IEnumerator enumerator2;
    if (enumerator2 is IDisposable)
    {
    (enumerator2 as IDisposable).Dispose();
    }
    }
    this.scnr.RunWorkerAsync();
    }

    و الی اخر
    ممنون راهنمایی کنید
    راستی من این کدارو تو vb.net هم نوشتم تو او ارورر نمیده اما وقتی به سی شارپ میام و وینویسم
    ارورر میده ممنون
    آخرین ویرایش به وسیله Mahmoud.Afrad : سه شنبه 03 اسفند 1395 در 23:57 عصر

  5. #5

    نقل قول: از دست خطای Use of unassigned local variable

    متغیرهایی که قبل از try تعریف کردید رو میتونید در finally در صورت نیاز از بین ببرید.
    سعی کنید در جایی که امکان ایجاد خطا نیست از try استفاده نکنید. و از متدهای از پیش آماده مثل string.Compare برای مقایسه استفاده کنید.
            private void getlnks(string src)
    {
    Regex regex = new Regex("\\bhref\\S*=\"/url\\?q=(http://\\S*?)&amp");
    MatchCollection matchCollection = regex.Matches(src);
    foreach (Match match in matchCollection)
    {
    try
    {
    if (match.Groups[1].Value.StartsWith("http://", StringComparison.CurrentCultureIgnoreCase) &&
    !(match.Groups[1].Value.Contains("www.google.com") ||
    match.Groups[1].Value.Contains("www.youtube.com") ||
    match.Groups[1].Value.Contains("page2rss.com")) &&
    this.URLDecode(match.Groups[1].Value).Contains("=") && this.chklist.InvokeRequired)
    {
    this.chkadder(this.URLDecode(match.Groups[1].Value));
    }
    }
    catch (Exception expr_134)
    {
    ProjectData.SetProjectError(expr_134);
    Exception ex = expr_134;
    MessageBox.Show(ex.Message);
    ProjectData.ClearProjectError();
    }
    finally
    {
    IDisposable obj = match as IDisposable;
    if (obj != null)
    {
    obj.Dispose();
    }
    }
    }
    }


            public void startb_Click(object sender, EventArgs e)
    {
    foreach (Control control in this.GroupBox1.Controls)
    {
    if (Operators.CompareString(control.Name, "stop2b", false) != 0)
    {
    control.Enabled = false;
    }
    }

    foreach (Control control2 in this.GroupBox2.Controls)
    {
    control2.Enabled = false;
    }
    this.scnr.RunWorkerAsync();
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •