提问人:askldq 提问时间:2/9/2023 最后编辑:askldq 更新时间:2/9/2023 访问量:142
C# 用户输入验证
C# User Input Validation
问:
如何使用我的接口验证方法中的用户输入,其中存储了所有允许的输入? 如果我这样做,那么我会得到System.NullReferenceException:
public interface INumbUnit
{
public string UnitName { get; set; }
}
public void ValidateNumb()
{
INumbUnit? x = null;
while (string.IsNullOrEmpty(UserSourceUnit))
{
Console.WriteLine("[ERROR] Input can't be empty! Please try again.");
ChooseUnits();
}
while(UserSourceUnit != x.UnitName) //0Reference
{
Console.WriteLine("[ERROR] No such unit for selection! Please try again.");
}
}
UserSourceUnit 只是一个 Console.ReadLine
UnitNames 存储在 extern 类中,但仍有对它们的引用,所以我认为这不是问题所在
答:
1赞
Thomas Koelle
2/9/2023
#1
我怀疑你是编程新手,所以你必须想象 INumbUnit 和 UnitName 都可以为 null。
因此,要么要检查 INumbUnit beeing null,要么要确保它永远不会为 null。
你需要明白这条线
INumbUnit? x = null;
很可能需要用真实对象替换,比如
INumbUnit? x = new NumbUnit();
然后你再上一堂课
public class NumbUnit:INumbUnit
评论