3

この問題には多くのトピックがあることは知っていますが、私の場合は見つかりませんでした。

「割り当てられていないローカル変数 'flags' の使用」というエラーが発生しました

public class Flag : INotifyPropertyChanged
{

    public event PropertyChangedEventHandler PropertyChanged; 

    private string _Tag;
    public string Tag
    {
        get { return _Tag; }
        set
        {
            _Tag = value;
            NotifyPropertyChanged("Tag");
        }
    }

    private string _Name;
    public string Name
    {
        get { return _Name; }
        set
        {
            _Name = value;
            NotifyPropertyChanged("Name");
        }
    }

    private void NotifyPropertyChanged(string propertyName)
    {
        if (null != PropertyChanged)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }

    const string filename = "Flags.xml";
    public void Save()
    {
        IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
        IsolatedStorageFileStream stream = storage.CreateFile(filename);
        XmlSerializer xml = new XmlSerializer(GetType());
        xml.Serialize(stream, this);
        stream.Close();
        stream.Dispose();
    }
}

フラグを割り当てようとすると、コードの主要部分に問題が発生する

   public partial class MainPage : PhoneApplicationPage
    {

        public MainPage()
        {
            InitializeComponent();

            Flag flags;          
            flags.Name = "1111"; //I here error
            flags.Tag = "1";     //I
                                 //I
            flags.Save();        //I
        }
    }
4

5 に答える 5

3

このクラス変数をインスタンス化する必要があります。

クラスオブジェクトの宣言中にインスタンス化するとFlag flags=new Flag()、このエラーが発生します。

関数全体は次のようになります。

 public MainPage()
    {
        InitializeComponent();
        Flag flags = new Flag();          
        flags.Name = "1111"; 
        flags.Tag = "1";     
        flags.Save();        
    }
于 2013-08-05T11:33:06.213 に答える
3

初期化する必要がありますflags:

public partial class MainPage : PhoneApplicationPage
{
    public MainPage()
    {
        InitializeComponent();
        Flag flags = new Flag();          
        flags.Name = "1111"; 
        flags.Tag = "1";     
        flags.Save();        
    }
}
于 2013-08-05T11:32:03.953 に答える
2

旗の旗のオブジェクトを作成します。それを割り当ててみてください。

Flag flags = new Flag();
于 2013-08-05T11:33:26.180 に答える
2

コードフラグはクラスであり、メモリヒープ上のクラスのオブジェクトにスペースを割り当てない限り、クラスのメンバー変数の値を初期化することはできません。以下に示すように、 new キーワードを使用してクラスのオブジェクトを構築できます。

Flag flags = new Flag();   

ここで、flags は、Flag 型のオブジェクトへの参照を含む、Flag 型の変数です。

メンバー変数のスペースを再度初期化する flags 変数にメモリスペースを割り当てたので、以下のコードを使用してこれらの変数に値を割り当てることができます-

flags.Name = "1234"; 
flags.Tag = "12"; 

問題の理解に役立った場合は、これを回答としてマークしてください。

于 2013-08-05T11:54:00.057 に答える
2

これを試して

Flag flags = new Flag();
于 2013-08-05T11:33:49.987 に答える