Ai đó có thể giúp tôi khai sáng?Cú pháp chuyển đổi không hợp lệ được xây dựng thành công?
Tôi đã đi kiểm tra một số thay đổi đối với TFS và việc đăng ký của tôi đã bị từ chối. Nó nhắc tôi xem xét một câu lệnh switch mà tôi đã chỉnh sửa.
Điều tôi thấy là Visual Studio 2017 tuyên bố không có vấn đề về thời gian biên dịch và cho phép tôi xây dựng và triển khai ứng dụng thành công. Ngày đầu đó, ngay cả các bài kiểm tra đơn vị cho các phương pháp dường như đi qua như dự định.
public enum PaymentStatus
{
Issued,
Cleared,
Voided,
Paid,
Requested,
Stopped,
Unknown
}
public class PaymentViewModel
{
public PaymentStatus Status { get; set; }
...
public String StatusString
{
get
{
switch (this.Status)
{
case PaymentStatus.Cleared:
return "Cleared";
case PaymentStatus.Issued:
return "Issued";
case PaymentStatus.Voided:
return "Voided";
case PaymentStatus.Paid:
return "Paid";
case PaymentStatus.Requested:
return "Requested";
case PaymentStatus.Stopped:
return "Stopped";
case PaymentStatus Unknown:
return "Unknown";
default:
throw new InavlidEnumerationException(this.Status);
}
}
}
}
Vì vậy, hãy lưu ý rằng dòng "case PaymentStatus Unknown" bị thiếu '.' toán tử dấu chấm. Như đã đề cập, dự án xây dựng và chạy; nhưng không thể đăng ký với máy chủ xây dựng có cổng.
Ngoài ra, lưu ý rằng các thử nghiệm sau đây được thông qua:
[TestMethod]
public void StatusStringTest_Unknown()
{
var model = new PaymentViewModel()
{
Status = PaymentStatus.Unknown
}
Assert.AreEqual("Unknown", model.StatusString);
}
Dưới đây là một số hình ảnh cho thấy không có squigglies và nó thực sự xây dựng tốt:
Cuối cùng, lưu ý rằng tôi đã chạy thử nghiệm chỉ với một chuỗi tĩnh thay vì sử dụng tệp tài nguyên và nó chuyển. Tôi chỉ cần bỏ qua các tập tin tài nguyên công cụ vì lợi ích của sự đơn giản trong đoạn mã trên.
Bất kỳ suy nghĩ nào về điều này được đánh giá cao nhất! Cảm ơn trước!