Проверьте, является ли строка нулевой - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу проверить, равна ли моя переменная ( crphoto1 ) нулю.Если crphoto1 равно нулю, crPhoto1Data должно быть равно нулю, а когда crphoto1 не равно нулю, crPhoto1Data должно быть таким: byte [] crPhoto1Data = File.ReadAllBytes (crphoto1); .Код ниже дает мне ошибку, как я могу это исправить?

if (string.IsNullOrEmpty(crphoto1))
{
    string crPhoto1Data = "";
}
else
{
    byte[] crPhoto1Data = File.ReadAllBytes(crphoto1);
}


var ph1link = "http://" + ipaddress + Constants.requestUrl + "Host=" + host + "&Database=" + database + "&Contact=" + contact + "&Request=tWyd43";
string ph1contentType = "application/json";
JObject ph1json = new JObject
{
    { "ContactID", crcontactID },
    { "Photo1", crPhoto1Data }
};

1 Ответ

0 голосов
/ 12 февраля 2019

Проблема в том, что вы пытаетесь использовать переменную, которая объявлена ​​внутри блока с более узкой областью действия (вы определяете crPhoto1Data внутри блока if).Другая проблема заключается в том, что вы пытаетесь установить более одного типа.

Один из способов решить эту проблему - создать JObject в операторе if/else (или использовать троичный оператор, как в моем примерениже):

JObject ph1json = string.IsNullOrEmpty(crphoto1)
    ? new JObject
    {
        {"ContactID", crcontactID},
        {"Photo1", ""}
    }
    : new JObject
    {
        {"ContactID", crcontactID},
        {"Photo1", File.ReadAllBytes(crphoto1)}
    };
...