【问题标题】:Error: Invalid token '=' in class, struct, or interface member declaration错误:类、结构或接口成员声明中的标记“=”无效
【发布时间】:2017-11-07 05:06:55
【问题描述】:

晚上好,我在 vb.net 的项目中使用了一个 c# 编写的库,除了一些命令外,它工作得很好,为了使它们工作,我必须下载源库代码并将变量的类型从 long integer 更改,但是我尝试了多少重新编译它却得到了这两个错误:

错误 1 ​​Invalid Token '=' in the member declaration of the class, structure or interface C:\Users\Luca\Desktop\TLSharp-master\TeleSharp.TL\TLMethod.cs 23 48 TeleSharp.TL

错误 2 类、结构或接口 C:\Users\Luca\Desktop\TLSharp-master\TeleSharp.TL\TLMethod.cs 的成员中的无效令牌 '=' 24 48 TeleSharp.TL

参考这段代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using TeleSharp.TL;
namespace TeleSharp.TL
{
    public abstract class TLMethod : TLObject
    {

        public abstract void deserializeResponse(BinaryReader stream);
        #region MTPROTO
        public long MessageId { get; set; }
        public int Sequence { get; set; }
        public bool Dirty { get; set; }
        public bool Sended { get; private set; }
        public DateTime SendTime { get; private set; }
        public bool ConfirmReceived { get; set; }
        public virtual bool Confirmed { get; } = true;
        public virtual bool Responded { get; } = false;

        public virtual void OnSendSuccess()
        {
            SendTime = DateTime.Now;
            Sended = true;
        }

        public virtual void OnConfirm()
        {
            ConfirmReceived = true;
        }

        public bool NeedResend
        {
            get
            {
                return Dirty || (Confirmed && !ConfirmReceived && DateTime.Now - SendTime > TimeSpan.FromSeconds(3));
            }
        }
        #endregion

    }
}

我对 C# 的了解很肤浅,我该如何解决这些错误?

【问题讨论】:

  • 你不能直接给这样的属性赋值。如果您希望在创建类时默认将这些值设置在构造函数中。编辑:我会回答如何回答。
  • @SamMarion 您可以从 C# 6 开始执行这些任务。
  • 哇哦。需要将我的 c# 更新到我不知道的最新版本。谢谢
  • @SamMarion 您删除的答案仍然有效。 OP 可能没有启用 C# 6。

标签: c#


【解决方案1】:

更改这些属性

public virtual bool Confirmed { get; } = true;
public virtual bool Responded { get; } = false;

可能你想这样做:

public virtual bool Confirmed { get {return true; } }
public virtual bool Responded { get {return false; } }

根据 c# 的版本,这些属性会引发错误。

【讨论】:

    猜你喜欢
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2014-04-07
    • 2014-06-22
    • 2016-07-10
    • 1970-01-01
    相关资源
    最近更新 更多