您好我正在使用c#中的基本Windows窗体,我对 Trim()方法有一点问题。 用户输入他的名字,姓氏和ID时,有3个文本框。 然后他可以通过点击保存按钮来保存信息,但我想确保他没有留下空白框,所以我做了以下测试:
string CFN = Curator_FN.Text;
string CLN = CURATOR_LN.Text;
string CID = CURATOR_ID.Text;
Curator_FN.Text.Trim();
CURATOR_ID.Text.Trim();
CURATOR_LN.Text.Trim();
if (((Curator_FN.Text.Length == 0) || (CURATOR_ID.Text.Length == 0) || (CURATOR_LN.Text.Length == 0)))
{
MessageBox.Show("You Have to enter a First Name, a Last Name and an ID");
Empty = true;
}
问题是如果我只用空格键做一些空格, Trim()方法不会将它们视为空格。 也许我只是误解了 Trim()方法,如果我这样做,你对我如何做到这一点有任何想法吗? 提前致谢。
答案 0 :(得分:5)
Trim
方法不会修改文本框的内容,只需返回修剪后的版本。您需要存储此版本,例如
Curator_FN.Text = Curator_FN.Text.Trim();
当然,这有可能使用户可以看到更改(并且还必须访问在其他情况下可能存在问题的UI线程),因此使用本地变量就好了
var curatorFn = Curator_FN.Text.Trim();
// etc
if (curatorFn.Length == 0 || ... ) {
// show messagebox
}
当然,如果这就是你需要做的,使用string.IsNullOrWhiteSpace
可能是一个更方便的选择。
答案 1 :(得分:2)
由于字符串在C#中是不可变的,因此Trim()方法不会更改字符串本身;它返回一个修剪过的字符串的新实例。
您需要将方法调用的结果分配给变量,即
CFN = Curator_FN.Text.Trim()
然后检查CFN是否为空。
答案 2 :(得分:2)
修剪不会修改字符串。你想要:
Curator_FN.Text = Curator_FN.Text.Trim();
CURATOR_ID.Text = CURATOR_ID.Text.Trim();
CURATOR_LN.Text = CURATOR_LN.Text.Trim();
此外,如果您使用的是.NET 4,则可能还需要检查String.IsNullOrWhiteSpace方法。
if (String.IsNullOrWhiteSpace(Curator_FN.Text) ||
String.IsNullOrWhiteSpace(CURATOR_ID.Text) ||
String.IsNullOrWhiteSpace(CURATOR_LN.Text)
{
//..
}
答案 3 :(得分:1)
修剪不会修改字符串本身。它返回一个新的修剪字符串。
如果您不关心修改变量,请查看IsNullOrWhiteSpace方法。
if (String.IsNullOrWhiteSpace(curatorFn) || ... ) {
// show messagebox
}