ViewModel中的表达式主体构造函数会产生构建错误

时间:2019-09-17 14:41:29

标签: c# constructor compiler-errors viewmodel expression-body

由于某种原因,当试图将表达式主体用作视图模型时,会出现构建错误。

这有效:

public class SolutionMaintenanceViewModel
{
    public SolutionMaintenanceViewModel(IActiveUserService currUserSrv)
    {
        _currUserSrv = currUserSrv;
    }
    ...
}

鉴于此:

public class SolutionMaintenanceViewModel
{
    public SolutionMaintenanceViewModel(IActiveUserService currUserSrv) => _currUserSrv = currUserSrv;
    ...
}

给出以下内容:

  

1> C:\ MyPath \ Models \ SolutionMaintenanceViewModel.cs(16,77,16,79):错误CS1002:;预期的

     

1> C:\ MyPath \ Models \ SolutionMaintenanceViewModel.cs(16,77,16,79):错误CS1519:类,结构或接口成员声明中的无效令牌'=>'

     

1> C:\ MyPath \ Models \ SolutionMaintenanceViewModel.cs(16,93,16,94):错误CS1519:类,结构或接口成员声明中的无效令牌'='

     

1> C:\ MyPath \ Models \ SolutionMaintenanceViewModel.cs(16,106,16,107):错误CS1519:无效的令牌';'在类,结构或接口成员声明中   ===========构建:0成功,1失败,4最新,跳过0 ==========

值得注意的是,在Visual Studio的“错误列表”窗口下没有错误显示。仅在“输出”窗口下。

为什么会这样?

使用.NET Framework 4.7.2

编辑:根据要求,以下是整个视图模型:

public class SolutionMaintenanceViewModel
{
    private IActiveUserService CurrUserSrv;

    public SolutionMaintenanceViewModel(IActiveUserService currUserSrv) => CurrUserSrv = currUserSrv;

    public List<ConcernArea> AllConcernAreas { get; set; }

    public IEnumerable<DealerFeedback> AllDealerFeedback { get; set; }

    public List<PortalProductSubGroup> AllPPSGs { get; set; }

    public string AttachmentGUID { get; set; }

    public string AttachmentGUIDs { get; set; }

    public List<SolutionAttachment> Attachments { get; set; }

    public bool CanSaveSubmit =>
        (Status == SolutionStatus.NewDraft || Status == SolutionStatus.MaintenanceDraft)
        && IsDealerOrHasMaintenancePermission;

    private bool IsDealerOrHasMaintenancePermission =>
        CurrUserSrv.GetActiveUser() is IDealer || CurrUserSrv.GetActiveUser() is InternalUser &&
        ((InternalUser)CurrUserSrv.GetActiveUser()).GetPermission(PermissionsProgramAreas.MAINTAINSOLUTIONS
            .ToString()) == PermissionsValue.WRITE;

    public bool CanApprove =>
        Status == SolutionStatus.Pending && CurrUserSrv.GetActiveUser() is InternalUser &&
        ((InternalUser)CurrUserSrv.GetActiveUser()).GetPermission(PermissionsProgramAreas.APPROVESOLUTIONS
            .ToString()) == PermissionsValue.WRITE;

    public bool CanDelete =>
        DealerDraftOrAuthorizedOrLastMaintained
        && HasBeenSaved()
        && (NewDraftCanBeDeleted || !HasEverBeenApproved);

    private bool DealerDraftOrAuthorizedOrLastMaintained =>
        !string.IsNullOrEmpty(OriginallyCreatedByDealerUsername) || CurrUserSrv.GetActiveUser() is InternalUser &&
        (((InternalUser)CurrUserSrv.GetActiveUser()).GetPermission(PermissionsProgramAreas.DELETESOLUTIONS
             .ToString()) == PermissionsValue.WRITE || CurrUserSrv.GetActiveUser().Username == UserModified);

    private bool NewDraftCanBeDeleted =>
        Status == SolutionStatus.NewDraft
        && (
            string.IsNullOrEmpty(OriginallyCreatedByDealerUsername)
            || CurrUserSrv.GetActiveUser() is IDealer
            && CurrUserSrv.GetActiveUser().Username == OriginallyCreatedByDealerUsername
        );

    private bool HasBeenSaved() => VersionID != 0;

    public bool CanDisapprove =>
        (Status == SolutionStatus.Pending || Status == SolutionStatus.Approved)
        && CurrUserSrv.GetActiveUser() is InternalUser
        && ((InternalUser)CurrUserSrv.GetActiveUser()).GetPermission(PermissionsProgramAreas.APPROVESOLUTIONS
            .ToString()) == PermissionsValue.WRITE;

    public bool CanSeeAttachments =>
        CurrUserSrv.GetActiveUser() is InternalUser || Status == SolutionStatus.Approved;

    public bool CanAddAttachments =>
        CurrUserSrv.GetActiveUser() is InternalUser
        && (Status == SolutionStatus.MaintenanceDraft || Status == SolutionStatus.NewDraft);

    [MaxLength(2000)]
    public string Cause { get; set; }

    [Required]
    [MaxLength(2000)]
    public string Complaint { get; set; }

    [Required]
    public int CompanyNumber { get; set; }

    [Required]
    public int ConcernAreaID { get; set; }

    [Required]
    [MaxLength(2000)]
    public string Correction { get; set; }

    [MaxLength(2000)]
    public string DealerCreatedNotes { get; set; }

    public DealerFeedback DealerFeedback { get; set; }

    [MaxLength(2000)]
    public string DealerNotes { get; set; }

    public bool HasEverBeenApproved { get; set; }

    public int HeaderID { get; set; }

    [MaxLength(2000)]
    public string InternalNotes { get; set; }

    public IEnumerable<string> ItemNums { get; set; }

    public bool IsSubmit { get; set; }

    public string Key { get; set; }

    public string OriginallyCreatedByDealerUsername { get; set; }

    public int? PortalProductSubGroupID { get; set; }
    public IEnumerable<string> SolutionSerialsDistinctSerialNums { get; set; }
    public int? SolutionSerialsSerialRangeFrom { get; set; }
    public int? SolutionSerialsSerialRangeTo { get; set; }

    public SolutionStatus Status { get; set; }

    [Required]
    [MaxLength(100)]
    public string Title { get; set; }

    public string UserModified { get; set; }

    public int VersionID { get; set; }
}

0 个答案:

没有答案
相关问题