Неправильный вывод базового объектно-ориентированного кодаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Неправильный вывод базового объектно-ориентированного кода

Сообщение Anonymous »

Итак, у меня есть простой объектно-ориентированный код C#, который ведет себя не так, как ожидалось.
Вот мой объектный класс:

Код: Выделить всё

internal class Fighter
{
public int Id { get; }
public string Name { get; set; }
int Health { get; set; } = 100;
int Height { get; set; } = 180;
int Weight { get; set; } = 78;
static Weapon weapon { get; set; }
int WeaponValue { get; } = (int)weapon;
int DealedDamage { get; set; } = 0;
bool IsMale { get; set; } = true;
internal Random Random { get; private set; } = new Random();
bool IsDead { get; set; } = false;

public Fighter(int id, string name, Weapon weap) { this.Id = id; this.Name = name; weapon = weap;}

public void Description()
{
Console.WriteLine("Fighter ID : " + Id + ", Name : " + Name + ", Weapon : " + weapon + ", dealing " + WeaponValue + " pts of damage.");
}
}
Мое перечисление «Оружие»:

Код: Выделить всё

internal enum Weapon { Couteau = 1, Machette = 3, Pistolet = 5, Grenade = 10, Mitraillette = 15, Fusil = 30 }
И, наконец, мой класс Program.cs:

Код: Выделить всё

    internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
Console.WriteLine("Bienvenue dans le programme de baston.");
Fighter fighter1 = new Fighter(0, "Gaston", Weapon.Couteau);
Fighter fighter2 = new Fighter(1, "Francis", Weapon.Grenade);
fighter1.Description();
fighter2.Description();

}
}
Я получаю этот результат, запуская свой код в режиме отладки в Visual Studio 2022:

Код: Выделить всё

Hello, World!
Bienvenue dans le programme de baston.
Fighter ID : 0, Name : Gaston, Weapon : Grenade, dealing 0 pts of damage.
Fighter ID : 1, Name : Francis, Weapon : Grenade, dealing 1 pts of damage.

Sortie de C:\Users\donna\Desktop\FightingTournament\bin\Debug\net6.0\FightingTournament.exe (processus 23112). Code : 0.
Pour fermer automatiquement la console quand le débogage s'arrête, activez Outils->Options->Débogage->Fermer automatiquement la console à l'arrêt du débogage.
Appuyez sur une touche pour fermer cette fenêtre. . .
Это не то, чего я ожидал, у меня должно быть разное оружие для двух объектов, которые я создал.
Как это возможно?
Спасибо за внимание.
Я попробовал поместить перечисление в собственное пространство имен.
Я попробовал изменить видимость перечисления и т. д.
Я также пробовал передавать разные значения для переменной Weapon.
Каждый раз вывод неправильный.

Подробнее здесь: https://stackoverflow.com/questions/783 ... ented-code
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»