我有一个类,我想通过一个按钮在列表中生成它的对象。 这是班级:
public class player : Form2
{
private List<player> players = new List<player>();
private string name { get; set; }
private System.Drawing.Color color { get; set; }
public void playergenerator(string myname, System.Drawing.Color myColor)
{
players.Add(new player() { name = myname, color = myColor });
}
}
问题是我无法在没有现有对象的情况下调用playergenerator
,但我想生成列表中的所有对象。
如何毫无问题地致电playergenerator
?
我也尝试使用派生类来生成对象,但我有一些范围问题。
还试图让playergenerator保持静态,但我遇到了一个错误:
非静态场方法或者需要对象引用 属性
所以我完成了。我无能为力。
帮助!!!!!!
p.s:程序是用winform编写的
答案 0 :(得分:1)
使用属性public class dads
{
public static void main(String args[]) throws Exception
{
SXSSFWorkbook workbook = new SXSSFWorkbook(100);
SXSSFSheet sheet = workbook.createSheet("output");
FileOutputStream f = new FileOutputStream("czPA LEASE.xlsx",true);
// DRIVER
WebDriver driver=new FirefoxDriver();
driver.get("https://en.wikipedia.org/wiki/List_of_Death_Note_episodes");
List<WebElement> Elements=driver.findElements(By.xpath("//table//tbody//td//i"));
int x=-1;
int y=1;
for(WebElement ele: Elements)
{
System.out.println(ele.getText());
SXSSFRow dataRow = sheet.createRow((short)++x);
SXSSFCell cell=dataRow.createCell(0);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(ele.getText());
}
List<WebElement> Elements1=driver.findElements(By.xpath("//table//tbody//td"));
int x1=-1;
int y1=2;
for(WebElement ele1: Elements1)
{
System.out.println(ele1.getText());
SXSSFRow dataRow = sheet.createRow((short)++x1);
SXSSFCell cell1=dataRow.createCell(1);
cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
cell1.setCellValue(ele1.getText());
}
try
{
f.flush();
workbook.write(f);
f.close();
System.out.println("Excel written successfully..");
driver.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
和PlayerModel
创建新的课程name
。您的color
类将是您的UI(表单类),而播放器模型是具有业务规则和状态(属性)的模型类
player
答案 1 :(得分:0)
//Declare your player list inside your form
private List<Player> players = new List<Player>();
//Make player a CLASS
public class Player
{
public string name { get; set; }
public System.Drawing.Color color { get; set; }
//Declare your class CONSTRUCTOR, like this
public Player(string name, System.Drawing.Color color)
{
this.name = name;
this.color = color;
}
}
//NOW, this will work
public void playergenerator(string myname, System.Drawing.Color myColor)
{
players.Add(new Player(myname, myColor));
}
答案 2 :(得分:0)
所以我建议解决方案。创建一个类,以定义播放器
public class player
{
public string name { get; set; }
public System.Drawing.Color color { get; set; }
}
为玩家列表生成下一个创建类
public static class Players
{
private static List<player> _players;
public static List<player> players
{
get { return _players; }
set { _players = value; }
}
public static void playergenerator(string myname, System.Drawing.Color myColor)
{
if (players == null)
players = new List<player>();
players.Add(new player() { name = myname, color = myColor });
}
}
然后添加玩家:
Players.playergenerator("playgirl", Color.AliceBlue);
并访问您的播放器列表
List<player> currentPlayers = Players.players;