猿问

破坏统一性的构造函数

编码


Army.Add(new PigSquad("The Old Guard", 10, 4));

哪里Army是List<Unit>和Pigsquad被定义为


public class PigSquad : Unit

{

    public override bool Dead { get; set; }

    public override string Name { get; set;}

    public override int Strength { get; set; }

    public override int Age { get { return Age; } set { Age = value; Strength += 20 - Age; if (Age > 20) { Dead = true; } } }

    public override int Veterancy { get; set; }

    public PigSquad()

    {


    }

    public PigSquad(string Name)

    {

        this.Name = Name;

    }

    public PigSquad(string Name, int Strength)

    {

        this.Name = Name;

        this.Strength = Strength;

    }

    public PigSquad(string Name, int Strength, int Age)

    {

        this.Name = Name;

        this.Strength = Strength;

        this.Age = Age;

    }

}

运行时使Unity编辑器崩溃。我不知道为什么会这样。在这方面的任何帮助将不胜感激。


杨__羊羊
浏览 124回答 1
1回答

九州编程

public&nbsp;override&nbsp;int&nbsp;Age&nbsp;{&nbsp;get&nbsp;{&nbsp;return&nbsp;Age;&nbsp;}&nbsp;set&nbsp;{&nbsp;Age&nbsp;=&nbsp;value;&nbsp;Strength&nbsp;+=&nbsp;20&nbsp;-&nbsp;Age;&nbsp;if&nbsp;(Age&nbsp;>&nbsp;20)&nbsp;{&nbsp;Dead&nbsp;=&nbsp;true;&nbsp;}&nbsp;}&nbsp;}应该private&nbsp;int&nbsp;_Age;&nbsp;//maybe&nbsp;make&nbsp;this&nbsp;in&nbsp;your&nbsp;UNIT&nbsp;object&nbsp;as&nbsp;well&nbsp;and&nbsp;that&nbsp;way&nbsp;you&nbsp;do&nbsp;not&nbsp;need&nbsp;it&nbsp;in&nbsp;your&nbsp;child. public&nbsp;override&nbsp;int&nbsp;Age&nbsp;{&nbsp;get&nbsp;{&nbsp;return&nbsp;_Age;&nbsp;}&nbsp;set&nbsp;{&nbsp;_Age&nbsp;=&nbsp;value;&nbsp;Strength&nbsp;+=&nbsp;20&nbsp;-&nbsp;_Age;&nbsp;if&nbsp;(Age&nbsp;>&nbsp;20)&nbsp;{&nbsp;Dead&nbsp;=&nbsp;true;&nbsp;}&nbsp;}&nbsp;}
随时随地看视频慕课网APP
我要回答