繁体   English   中英

C#初始化清单

[英]C# initializing list

我在哪里可以初始化List以便让其他函数知道它的存在,因此Visual Studio不显示任何错误。 暂时看起来像这样:

    namespace ConsoleApplication1
{

  public class BazaDanych
    {

   public class Album
   {
       public int IDNumber { get; set; }
       public string AlbumName { get; set; }
       public string Artist { get; set; }
       public int ReleaseDate { get; set; }
       public int TrackAmount { get; set; }
       public string Location { get; set; }
       public int Rating { get; set; }

       public Album(int _id, string _name, string _artist, int _releasedate, int _trackamount, string _location, int _rating)
       {
           IDNumber = _id;
           AlbumName = _name;
           Artist = _artist;
           ReleaseDate = _releasedate;
           TrackAmount = _trackamount;
           Location = _location;
           Rating = _rating;
       }
   }

   static int currid = 1;
   public void addnew()
   {
       int ID = currid;
       if (ID == 1);
       List<Album> AlbumsList = new List<Album>();
    //useless for this question
   }

   public void printlist()
   {
       foreach ( int i in AlbumsList)
       {
           Console.WriteLine(i);
       }
   }


    static void Main(string[] args)
    {
        var db = new BazaDanych();
        //useless  
        db.addnew();
        db.addnew();



    }

}

} Visual Studio尖叫说AlbumsList在打印功能中不存在。

您在addnew()方法中声明AlbymsList。 这意味着它仅在该方法中可见。 您需要在任何方法之外声明它。

它应该是类成员/属性:

public class BazaDanych
{
   private List<Album> AlbumsList = new List<Album>();
   ....
}

首先,将Album的类定义BazaDanych BazaDanych类BazaDanych ,理想情况下为其创建一个单独的类文件,但这也可以工作

namespace ConsoleApplication1
{
   public class Album
   {
     //Album logic
   }

  public class BazaDanych
    {
    //Baza logic
    }
}

其次,如Amiros所述,将定义从addNew方法移至类( BazaDanych )中,并在AddNew使用此引用

public class BazaDanych
{
    private List<Album> AlbumsList = new List<Album>();
    public void AddNew()
    {
        AlbumsList.Add(new Album(...));
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM