如何使用方法生成对象列表?

时间:2017-08-02 09:22:22

标签: c# .net winforms list

我有一个类,我想通过一个按钮在列表中生成它的对象。 这是班级:

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编写的

3 个答案:

答案 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;