Может кто-нибудь, пожалуйста, помогите просветить меня?
Я пошел на регистрацию некоторых изменений в TFS, и моя регистрация была отклонена. Это побудило меня взглянуть на выражение о переключении, которое я редактировал.
Что я нашел, так это то, что Visual Studio 2017 утверждает, что нет проблемы с компиляцией и позволяет мне успешно создавать и развертывать приложение. Кроме того, даже unit test для метода, по-видимому, проходит, как предполагалось.
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);
}
}
}
}
Итак, обратите внимание, что в строке "case PaymentStatus Unknown" отсутствует символ ".". точечный оператор. Как уже упоминалось, проект строится и запускается; но не удалось выполнить регистрацию с закрытым сервером сборки.
Также обратите внимание, что следующий тест проходит:
[TestMethod]
public void StatusStringTest_Unknown()
{
var model = new PaymentViewModel()
{
Status = PaymentStatus.Unknown
}
Assert.AreEqual("Unknown", model.StatusString);
}
Вот некоторые изображения, не показывающие squigglies, и они действительно строят отлично:
Наконец, обратите внимание, что я запускал тест только с помощью статической строки, а не с помощью файла ресурсов, и он проходит. Я просто оставил материал файла ресурсов для простоты в коде выше.
Любые мысли об этом наиболее ценятся! Спасибо в Advance!