在哪里可以初始化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。
答案 0 :(得分:0)
您在addnew()方法中声明了AlbymsList。这意味着它只在该方法中可见。你需要在任何方法之外声明它。
答案 1 :(得分:0)
它应该是一个类成员/属性:
public class BazaDanych
{
private List<Album> AlbumsList = new List<Album>();
....
}
答案 2 :(得分:0)
首先,将Album
的类定义移到类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(...));
}
}