首页 > 解决方案 > 验证字符串是否为空或为空

问题描述

我想事先检查一个变量,看看它是空的还是空的。如果为null或为空,则应采用我定义的字符串。我的代码:

public string Ergebnis { get; set; }
public string Stufe { get; set; }
public string Niveau { get; set; }
public string Note { get; set; }
public DateTime? Datum { get; set; }

和功能:

public void EndEdit()
        {

            var newdate = Convert.ToDateTime(Datum).ToShortDateString();
            var client = new RestClient("MYDOMAIN");
            var request = new RestRequest("SOME THINGS", Method.POST)
                .AddUrlSegment("name", Name)
                .AddUrlSegment("kompetenzID", KompetenzID)
                .AddUrlSegment("ergebnis", Ergebnis)
                .AddUrlSegment("stufe", Stufe)
                .AddUrlSegment("niveau", Niveau)
                .AddUrlSegment("note", Note)
                .AddUrlSegment("datum", newdate)
                .AddUrlSegment("kuerzel", Kuerzel)
                .AddUrlSegment("background", Background)
                .AddHeader("Authorization", "Bearer " + ViewFingerPrint);

            IRestResponse restResponse = client.Execute(request);

            if (restResponse.StatusCode == HttpStatusCode.BadRequest)
            {
                MessageBox.Show("Der SuS ist nicht in der Datenbank vorhanden.");
            }
            else
            {

            }
        }

我想我可以用 if 语句来做到这一点。但是,我的函数无法识别该变量。我的代码:

if (string.IsNullOrEmpty(Ergebnis))
            {
                string Ergenisneu = "-";
            } else
            {
                string Ergebnisneu = Ergebnis;
            }

如果我在这里插入结果:

.AddUrlSegment("ergebnis", Ergebnis)

它不识别该变量并说:该变量从未使用过。我怎么能告诉变量它有一个空字符串?

同样的事情发生在这个变体中:

if (string.IsNullOrEmpty (Ergebnis))
                 string Ergebnis= "-";

标签: c#validationnull

解决方案


问题是你Ergebnis在 if 语句中重新声明了变量,你不应该这样做,因为它会在不同的范围内创建另一个具有相同名称的变量。然后发生的事情是您正在为该新变量分配一个值,但它从未被使用。这是你应该做的:

if (string.IsNullOrEmpty(Ergebnis))
{
    Ergebnis = "-";
}

推荐阅读