PDA

View Full Version : سوال: Use unassigned local variable



ghacem.sh
جمعه 16 اسفند 1387, 17:29 عصر
با سلام خدمت دوستان عزیز.
یک مشکل خیلی جالب برام پیش اومده.
من دارم یه برنامه با کنسول مینویسم.
و برای اینکه نخوام کل کد برنامه رو اینجا بنویسم یک کد نمونه آوردم که اگه مشکلم با این کد حل بشه خود به خود مشکل کد برنامه اصلی هم حل میشه.
ببینید کد زیر رو تو console application نوشتم.
یه برنامه خیلی ساده که (لااقل از نظر من) نباید هیچ مشکلی داشته باشه.
اتفاق جالب زمانی رخ میده که برنامه زیر رو اجرا کنم :

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
string ipu;
for (int i = 0; i < 10; i++)
{
ipu = i.ToString();
}
Console.WriteLine("the i is : " + ipu);
Console.Read();
}
}
}

و با خطای زیر روبرو میشم :
Use unassigned local variable 'ipu’
میگه متغییر به صورت محلی داره استفاده میشه ولی خوب اگه دستور رایت رو داخل خود حلقه بنویسی مشکل پیش نمیاد.
حالا سوال من اینه که چرا بیرون از حلقه متغیر ipu دیگه اصلا شناخته نمیشه؟؟؟؟
نه فقط برای رایت ، بلکه بیرون از حلقه از متغیر ipu به عنوان آرگومانت هیچ تابعی نمیشه استفاده کرد.
در صورتی که همین کد رو میشه داخل windows application به راحتی اجرا کرد.
دوستان اگه لطف کنید جواب بدید ممنون میشم.

ghacem.sh
جمعه 16 اسفند 1387, 19:02 عصر
دوستان انقدر جواب ندادید تا خودم فهمیدم مشکل کجاست
جواب رو مینویسم شاید بعدها به درد کسی بخوره
کاری که باید میکردم این بود که دقیقا قبل از خط
static void Main(string[] args
این خط رو اضافه میکردم
public static string ipu
و چون در windows application نیازی به نوشتن static نیست فکر کردم تو کنسول هم همینطوره
به هر حال از دوستانی هم که جواب ندادن ممنونم:بامزه:

Mahdi.Kiani
جمعه 16 اسفند 1387, 20:08 عصر
این موضوع ربطی به استاتیک بودن یا نبودن inp ندارد. بلکه قاعده این است که متغیر ها قبل از استفاده باید مقدار دهی شوند. اگر به معنی خطا هم دقت کنید، موکد همین مطلب است.



Use of unassigned local variable 'ipu'


علاوه بر این این مسئله ربطی به win app یا console app ندارد. قاعده همه جا یکسان است.
*******