【问题标题】:Validate strings if null or empty验证字符串是否为空或为空
【发布时间】:2021-09-22 18:04:49
【问题描述】:

我想事先检查一个变量,看看它是空的还是空的。如果为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)

它无法识别变量并说:从未使用过该变量。我还能如何告诉变量它在 null 处有一个字符串?

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

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

【问题讨论】:

  • 您在嵌套范围内声明了一个新变量。将string 放在if 语句中的变量前面,以使用已经存在的Ergebnis 属性。
  • Ergebnis = string.IsNullOrEmpty (Ergebnis) ? "-" : Ergebnis;
  • 非常感谢!效果很好!

标签: c# validation null


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    试试这个。您在 if 和 else 中声明字符串。在上面声明 if 条件并重新赋值。

    string Ergenisneu = string.Empty;
    
    Ergenisneu = string.IsNullOrEmpty(Ergebnis) ? "-":Ergebnis
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 2020-05-29
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多