Invalid token '=' in class, struct, or interface member declaration c#

前端 未结 3 939
时光说笑
时光说笑 2020-12-11 18:49

this may be a simple question for people, but I can\'t see why this is occurring. here is my code 1st:

using System;
using System.Collections.Generic;
using         


        
相关标签:
3条回答
  • 2020-12-11 19:32

    It looks like this error happens due to version your MSBuild, old version of MSBuild can only compile C# version 4, while your code written in C# version 6 format (set default value for properties).

    Example of code writing in C# version 6:

     public static string HostName { get; set; } = ConfigurationManager.AppSettings["RabbitMQHostName"] ?? "";
    

    For MSBuild to compile your code, you need to write in C# 4 style

    public static string HostName { get; set; }
    public SomeConstructor()
            {
                HostName = ConfigurationManager.AppSettings["RabbitMQHostName"] ?? "";... }
    

    Or

     public static string HostName
            {
                get
                {
                    return ConfigurationManager.AppSettings["RabbitMQHostName"] ?? "";
                }
            }
    

    Hope it helps

    0 讨论(0)
  • 2020-12-11 19:33

    Settting a default-value for auto-implemented properties is only available from C#-version 6 and upwards. Before Version 6 you have to use the constructor and set the default-value there:

    public class PlayerCharacter {
        public int Health { get; private set; }
    
        public PlayerCharacter()
        {
            this.Health = 100;
        }
    }
    

    To enable the compiler for VS2013 you may use this approach.

    0 讨论(0)
  • 2020-12-11 19:36

    the answer was:

    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; }
    
        }
    }
    

    making the constructor a function with () and not as PLayerCharacter{ etc.

    thanks to all, back into my hole I go.

    0 讨论(0)
提交回复
热议问题