C# 用C语言保存和访问类列表#
我在Xamarin.Forms中有一个应用程序,它应该允许通过调用AddCartList将新电影添加到列表中。我还试图访问列表中的每个元素C# 用C语言保存和访问类列表#,c#,class,oop,xamarin,xamarin.forms,C#,Class,Oop,Xamarin,Xamarin.forms,我在Xamarin.Forms中有一个应用程序,它应该允许通过调用AddCartList将新电影添加到列表中。我还试图访问列表中的每个元素 var moviesToRent = new MoviesToRent(); string movie_info = ""; foreach (MovieRentCart movie in moviesToRent.movieRentList) { movie_info = movie_info + "\n" + movie.movieTit
var moviesToRent = new MoviesToRent();
string movie_info = "";
foreach (MovieRentCart movie in moviesToRent.movieRentList)
{
movie_info = movie_info + "\n" + movie.movieTitle + " (" + movie.movieReleaseDate + ") [" + movie.movieDuration + " minutes]";
}
this.movie_details.Text = movie_info;
我有一个存储电影信息的类:
public class Movie
{
public string movieTitle { get; set; }
public string movieReleaseDate { get; set; }
public int movieDuration { get; set; }
public double movieRentalPrice { get; set; }
public string movieRentType { get; set; }
public Movie(string mtitle, string mdate, int mtime, double mprice, string type)
{
movieTitle = mtitle;
movieReleaseDate = mdate;
movieDuration = mtime;
movieRentalPrice = mprice;
movieRentType = type;
}
}
这将创建用户选择租用的电影列表:
class MoviesRentCart
{
public List<Movie> movieRentList;
public MoviesToRent()
{
movieRentList = new List<MovieRent>();
}
public static MoviesToRent addCartList(string title, string date, int duration, double price, string type)
{
MoviesToRent movieList = new MoviesToRent();
Movie newMovie = new Movie(title, date, duration, price, type);
movieList.movieRentList.Add(newMovie);
return movieList;
}
}
然后,将显示上一页。当用户选择要添加的其他电影时,下一页(与电影添加到列表中的页面相同)应显示用户已选择租用的所有电影的详细信息(在列表中)
但是,这不会显示任何内容。我做错了什么?电影应该被添加到列表中,并且应该通过迭代列表来显示 您发布的代码存在一些问题:
public static class MoviesRentCart
{
public static List<Movie> movieRentList;
public static void addCartList(string title, string date, int duration, double price, string type)
{
Movie newMovie = new Movie(title, date, duration, price, type);
movieRentList.Add(newMovie);
}
}
公共静态类MoviesRentCart
{
公共静态列表movieRentList;
公共静态void addCartList(字符串标题、字符串日期、整数持续时间、双倍价格、字符串类型)
{
Movie newMovie=新电影(标题、日期、持续时间、价格、类型);
添加(新电影);
}
}
另一种方法是不将addCartList设置为静态方法,然后在屏幕之间共享MoviesToRent的实例:
public class MoviesRentCart
{
public List<Movie> movieRentList = new List<Movie>();
public void addCartList(string title, string date, int duration, double price, string type)
{
Movie newMovie = new Movie(title, date, duration, price, type);
movieRentList.Add(newMovie);
}
}
公共类电影租赁车
{
public List movieRentList=新列表();
public void addCartList(字符串标题、字符串日期、整数持续时间、双倍价格、字符串类型)
{
Movie newMovie=新电影(标题、日期、持续时间、价格、类型);
添加(新电影);
}
}
如果您使用的是Xamarin.Forms,则可以在应用程序页面上存储指向此实例的链接,也可以将其作为参数传递给需要数据的其他页面。谢谢。关于解决方案1,当我使用以下行时,尝试调用addCartList会导致应用程序中断:
MoviesRentCart.addCartList(this.title.Text、this.release\u date.Text、this.run\u time.Text、this.total.Text、this.type.Text)代码>@user10292318 1)静态版本是错误的做法,不应建议使用。2) 如果你的建议版本不起作用,你必须显示你的代码版本,并说明错误是什么。你说的是“我有一个错误,这是一些代码中的一个秘密,我不会告诉你”——当然,没有人能帮你。
public class MoviesRentCart
{
public List<Movie> movieRentList = new List<Movie>();
public void addCartList(string title, string date, int duration, double price, string type)
{
Movie newMovie = new Movie(title, date, duration, price, type);
movieRentList.Add(newMovie);
}
}