まあ、単に、私は(C#に新しい)今の構造体について学ぶ これは私の構造体(+ CTOR)クラス内の構造体を使用する場合は、値はゼロ
public struct BusLine
{
public int busNumber { get; set; }
public int passengersNumber { get; set; }
public double drivePrice { get; set; }
public double distanceBeginToEnd { get; set; }
public int stopsNumber { get; set; }
public BusLine(int _busNumber, int _passengersNumber, double _drivePrice, double _distanceBeginToEnd, int _stopsNumber)
{
busNumber = _busNumber;
passengersNumber = _passengersNumber;
drivePrice = _drivePrice;
distanceBeginToEnd = _distanceBeginToEnd;
stopsNumber = _stopsNumber;
}
}
であり、これは私のバスですクラス
public class Bus
{
public BusLine Line { get; set; }
public int currentPassengers { get; set; }
public int currentStop { get; set; } = 1;
public void EnterStation(int newPassengers, int passengerLeaves)
{
currentPassengers = Line.passengersNumber + newPassengers - passengerLeaves;
}
public string Drive()
{
if (currentStop == this.Line.stopsNumber)
{
return string.Format("Stop number: {0}\nPassengers quantity: {1}\nThis is the final STOP!\n", currentStop, currentPassengers);
}
return string.Format("Stop number: {0}\nPassengers quantity: {1}\n", currentStop++, currentPassengers);
}
}
は今、問題がある: 私はインスタンス化すると、構造体とクラスの両方(のProgram.cs以内)この方法:
Random rand = new Random();
BusLine BLine = new BusLine(_busNumber: 88, _passengersNumber: 22, _drivePrice: 6.90, _distanceBeginToEnd: 101.4, _stopsNumber: 15);
Bus bus = new Bus();
while (BLine.stopsNumber != 0)
{
BLine.stopsNumber--;
bus.EnterStation(rand.Next(1, 12), rand.Next(1, 12));
string getDrive = bus.Drive();
Console.WriteLine(getDrive);
}
それは(Bus.cs以内)この行であるようだ。
currentPassengers = Line.passengersNumber + newPassengers - passengerLeaves;
Line.passengersNumber = 0常に と
if (currentStop == this.Line.stopsNumber)
this.Line.stopsNumberは常に今ゼロ あるので、occuresことはありません私はstructsの私の使用で何かが間違っていることを理解しますが、私はBusLine.csのctorでそれらを初期化するので、値はどうしてBus.csで使用すると0になりますか? 先輩に感謝
ブレークポイントを設定し、デバッガを使用してコードをステップ実行することをお勧めします。 – MethodMan
'bus'オブジェクトで' Line'のインスタンスをインスタンス化することは決してありません。これを行う必要があります: 'bus.Line = BLine' –
問題を最小限に抑えてください。実際に関連していない騒音がここにあるようです。 – kai