C#编译错误取决于PC

时间:2017-05-10 07:39:14

标签: c# compiler-errors

我能够在我的电脑上编译一个C#项目但我的同事在尝试在他的电脑上编译同一个项目时有编译错误。尽管我们正在使用不同的VS版本(VS12和VS15),但.NET版本和项目配置是相同的。

项目在VS15上编译,但在VS12中没编译。

两台PC都是W7和.NET 4.5.2(我的同事已经为这个项目更新了他的版本)。

构建错误来自结构:

    public struct CommandMessage
    {
        public string RawMsg { get; set; }
        public string MsgId { get; set; }
        public string MsgBody { get; set; }
        public string[] MsgParams { get; set; }

        public CommandMessage(string rawMsg, string msgId, 
                              string msgBody, string[] msgParams)
        {
            RawMsg = rawMsg;
            MsgId = msgId;
            MsgBody = msgBody;
            MsgParams = msgParams;
        }

        public override string ToString()
        {
            return "CommandMessage<<" + MsgId + ">> : <" + MsgBody + ">";
        }
    }

这就是错误:

  

CS0843:自动实现属性的备用字段   CommandMessage.RawMsg&#39;必须在控制权返回之前完全分配   呼叫者,召集者。考虑从构造函数中调用默认构造函数   初始化程序。

对struct中的每个属性重复出错(RawMsg,MsgId,MsgBody,MsgParams)

错误很容易修复,只需在构造函数上添加: this()

public CommandMessage(string rawMsg, string msgId, 
                      string msgBody, string[] msgParams) : this ()
    {
        ...
    }

但是我无法找到为什么这个错误会出现在一台PC而不是另一台PC中?有些想法?

0 个答案:

没有答案