c'est peut-être une question simple pour les gens, mais je ne vois pas pourquoi cela se produit. voici mon code 1er:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameCore
{
public class PlayerCharacter
{
public void Hit(int damage)
{
Health -= damage;
if (Health <= 0)
{
IsDead = true;
}
}
public int Health { get; private set; } = 100;
public bool IsDead{ get; private set; }
}
}
à présent, Visual Studio donne l'erreur de jeton non valide sur le signe d'affectation (=) (selon le titre) et je ne vois pas pourquoi. Quelqu'un peut-il faire la lumière sur cela s'il vous plaît?
Ce que j'essaie de faire est de régler l'int de Health à 100, et chaque fois qu'un personnage subit des dégâts, sa santé est diminuée. Merci a tous.
J'utilise Visual Studio 2013 v12.0.40629.00 mise à jour 5
La définition d'une valeur par défaut pour les propriétés implémentées automatiquement n'est disponible qu'à partir de la version 6 # et plus. Avant la version 6, vous devez utiliser le constructeur et y définir la valeur par défaut:
public class PlayerCharacter {
public int Health { get; private set; }
public PlayerCharacter()
{
this.Health = 100;
}
}
Pour activer le compilateur pour VS2013, vous pouvez utiliser cette approche .
Il semble que cette erreur se produise en raison de la version de votre MSBuild. L'ancienne version de MSBuild ne peut compiler que la version 4 de C #, alors que votre code est rédigé au format C # version 6 (définissez la valeur par défaut pour les propriétés).
Exemple de code écrit en C # version 6:
public static string HostName { get; set; } = ConfigurationManager.AppSettings["RabbitMQHostName"] ?? "";
Pour que MSBuild puisse compiler votre code, vous devez écrire en style C # 4.
public static string HostName { get; set; }
public SomeConstructor()
{
HostName = ConfigurationManager.AppSettings["RabbitMQHostName"] ?? "";... }
Ou
public static string HostName
{
get
{
return ConfigurationManager.AppSettings["RabbitMQHostName"] ?? "";
}
}
J'espère que ça aide
la réponse était:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameCore
{
public class PlayerCharacter
{
public int Health { get; private set; }
public PlayerCharacter()
{
this.Health = 100;
}
public void Hit(int damage)
{
Health -= damage;
if (Health <= 0)
{
IsDead = true;
}
}
public bool IsDead{ get; private set; }
}
}
faire du constructeur une fonction avec () et non pas comme PLayerCharacter {etc.
merci à tous, je retourne dans mon trou.