Я - новичок и не понимаю, почему мой код бросает “Ожидаемое Выражение”

Есть несколько решений для достижения этой цели. Я рекомендую вам базовое решение,

Вот интерфейс для языковой службы (опционально, если вы используете Dependency Injection):

public interface ILanguageService
{
    string GetString(string text);
    void ChangeLanguage(bool isALang);
    bool IsALanguage();
}

Вы можете создать службу для локализации:

namespace Service.Language
{
    public sealed class LanguageService : ILanguageService
    {
        List<LanguageRow> LanguageList;
        private bool IsFirstLang;

        public LanguageService()
        {
            LanguageList = JsonHelper.ReadJSON<List<LanguageRow>>("Service.Language.MultiLanguage.json", typeof(LanguageService));
            IsFirstLang = true;
        }

        public void ChangeLanguage(bool IsFirstLang)
        {
            IsFirstLang =  !IsFirstLang;
        }

        public bool IsALangueage()
        {
            return IsFirstLang;
        }

        public string GetString(string text)
        {
            string result;
            try
            {
                var row = LanguageList.FirstOrDefault(i => i.Code.Equals(text));
                result = IsFirstLang? row.Values[0] : row.Values[1];
            }
            catch
            {
                result = text;
            }
            return result;
        }
    }
}

Вот модель для сериализации для json:

public class LanguageRow
{
    public LanguageRow()
    {
        Values = new List<string>();
    }

    public string Code { get; set; }
    public List<string> Values { get; set; }
}

Наконец, вот файл json: (EN-FR)

[
  {
    "Code": "VitalSignsViewPage_Title",
    "Values": [ "Page Title", "Titre de la page" ]
  },
  {
    "Code": "VitalSignsViewPage_SubTitle",
    "Values": [ "Sub Title", "Sous-titre" ]
  },
  {
    "Code": "VitalSignsViewPage_SubSubTitle",
    "Values": [ "Sub Sub Title", "Sous sous-titre" ]
  }
]
< blockquote>

Вы можете получить доступ к таким переводам, как:

ILanguageService _langService = new LangService()
_langService.GetString(AppResources.VitalSignsViewPage_Title);
5
задан Gavin Miller 13 March 2009 в 21:26
поделиться

2 ответа

Я предполагаю, что исключение выдается на на последней строке

lstOutput.Text = Bill * (1 + if (Tip<1,Tip,Tip/100))

Вы использовали "если", который используется в, если... затем оператор, но я поставил Вас, означал iif, который является функцией

lstOutput.Text = Bill * (1 + IIf (Tip<1,Tip,Tip/100))

просто добавьте, что один дополнительный "i" и Вы должны быть в порядке

Статья, объясняющая различие, между "ЕСЛИ" и "IIF ()"

9
ответ дан 13 December 2019 в 22:17
поделиться

Если Вы используете 2008? или позже, если в порядке

    Dim tipT As New TextBox
    Dim Bill As Decimal = 9D
    Dim tip As Decimal = 20
    tipT.Text = Convert.ToString(Bill * If(tip >= 1, tip / 100, tip))
1
ответ дан 13 December 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: