Eh, basitçe, ben (C# için yeni) şu anda yapılar hakkında bilgi bu benim yapı (+ ctor)bir sınıf içinde bir yapı kullanırken, değerleri sıfır
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;
}
}
ve bu benim otobüs olduğunu sınıf
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);
}
}
Şimdi sorun şu:
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);
}
: i yapı ve (program.cs içinde) sınıfı bu şekilde hem örneğini zaman
o (Bus.cs içinde) bu çizgidir görünüyor:
currentPassengers = Line.passengersNumber + newPassengers - passengerLeaves;
Line.passengersNumber = this.Line.stopsNumber artık her zaman sıfır olduğundan 0 daima ve
if (currentStop == this.Line.stopsNumber)
asla occures Yapılarımın kullanımı ile ilgili bir şeylerin yanlış olduğunu anlıyorum, ama onları BusLine.cs dosyasının içerisine dahil ettim, bu yüzden Bus.cs'de kullanıldığında değerleri hala 0 olur mu? Teşekkürler oner çocuklar
Kesme noktaları belirleme ve kod boyunca adım adım hata ayıklayıcısını kullanarak başlamanızı öneririm .. – MethodMan
Hiçbir zaman, 'Bus' nesnesinde' Line' örneğini oluşturmuyorsunuz. Bunu yapmanız gerekecek: 'bus.Line = BLine' –
bunu, sorunun asgari bir versiyonuna indirebilir misiniz? Burada gerçekten ilgili olmayan bir ton gürültü var gibi görünüyor. – kai