C# 修剪方法不适用于';我不能清除所有的空间

C# 修剪方法不适用于';我不能清除所有的空间,c#,winforms,string,trim,C#,Winforms,String,Trim,嗨,我正在用c#编写一个基本的windows窗体,我对Trim()方法有点问题。 其中有3个文本框,用户可以输入他的名字、姓氏和ID。 然后他可以通过点击保存按钮来保存信息,但我想确保他没有留下空白框,所以我做了以下测试: string CFN = Curator_FN.Text; string CLN = CURATOR_LN.Text; string CID = CURATOR_ID.Text; Curator_FN.Text

嗨,我正在用c#编写一个基本的windows窗体,我对Trim()方法有点问题。 其中有3个文本框,用户可以输入他的名字、姓氏和ID。 然后他可以通过点击保存按钮来保存信息,但我想确保他没有留下空白框,所以我做了以下测试:

        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;
        }
问题是如果我用空格键做一些空白,Time-()方法不把它们看作空白。 也许我只是误解了Trim()方法,如果我误解了,你知道我该怎么做吗?
提前谢谢

Trim方法不修改文本框的内容,它只返回经过修剪的版本。例如,您需要存储此版本

Curator_FN.Text = Curator_FN.Text.Trim(); 
当然,这有可能使更改对用户可见(并且它还必须访问UI线程,在其他情况下可能会出现问题),因此使用局部变量(如中所示)要好得多

var curatorFn = Curator_FN.Text.Trim(); 
// etc

if (curatorFn.Length == 0 || ... ) {
    // show messagebox
}

当然,如果您只需要这样做,那么使用可能是一个更方便的选择。

Trim方法不会修改文本框的内容,它只返回经过修剪的版本。例如,您需要存储此版本

Curator_FN.Text = Curator_FN.Text.Trim(); 
当然,这有可能使更改对用户可见(并且它还必须访问UI线程,在其他情况下可能会出现问题),因此使用局部变量(如中所示)要好得多

var curatorFn = Curator_FN.Text.Trim(); 
// etc

if (curatorFn.Length == 0 || ... ) {
    // show messagebox
}

当然,如果您只需要这样做,那么使用可能是一种更方便的选择。

Trim不会修改字符串本身。它返回一个新的修剪字符串

如果您并不真正关心修改变量,请查看该方法

if (String.IsNullOrWhiteSpace(curatorFn) || ... ) {
    // show messagebox
}

修剪不会修改字符串本身。它返回一个新的修剪字符串

如果您并不真正关心修改变量,请查看该方法

if (String.IsNullOrWhiteSpace(curatorFn) || ... ) {
    // show messagebox
}

由于字符串在C#中是不可变的,Trim()方法不会更改字符串本身;它返回修剪字符串的新实例

您需要将方法调用的结果分配给变量,即

CFN = Curator_FN.Text.Trim()

然后检查CFN是否为空。

由于字符串在C#中是不可变的,Trim()方法不会更改字符串本身;它返回修剪字符串的新实例

您需要将方法调用的结果分配给变量,即

CFN = Curator_FN.Text.Trim()

然后检查CFN是否为空。

Trim不会修改字符串。你想要:

Curator_FN.Text = Curator_FN.Text.Trim();
CURATOR_ID.Text = CURATOR_ID.Text.Trim();
CURATOR_LN.Text = CURATOR_LN.Text.Trim();
此外,如果您使用的是.NET4,您可能还需要检查该方法

if (String.IsNullOrWhiteSpace(Curator_FN.Text) ||
    String.IsNullOrWhiteSpace(CURATOR_ID.Text) ||
    String.IsNullOrWhiteSpace(CURATOR_LN.Text)
{
  //..
}

修剪不会修改字符串。你想要:

Curator_FN.Text = Curator_FN.Text.Trim();
CURATOR_ID.Text = CURATOR_ID.Text.Trim();
CURATOR_LN.Text = CURATOR_LN.Text.Trim();
此外,如果您使用的是.NET4,您可能还需要检查该方法

if (String.IsNullOrWhiteSpace(Curator_FN.Text) ||
    String.IsNullOrWhiteSpace(CURATOR_ID.Text) ||
    String.IsNullOrWhiteSpace(CURATOR_LN.Text)
{
  //..
}

非常感谢,我会改的!:)如果我只输入一些空格,IsNullOrEmpty方法会将字符串识别为空吗?@PhaDaPhunk:对不起,习惯性地犯了一个错误
IsNullOrWhiteSpace
是正确的方法,是的,它可以识别空格。非常感谢,我将更改它!:)如果我只输入一些空格,IsNullOrEmpty方法会将字符串识别为空吗?@PhaDaPhunk:对不起,习惯性地犯了一个错误
IsNullOrWhiteSpace
是正确的方法,它会识别空格。如果我只输入一些空格,IsNullOrEmpty方法会识别字符串为空吗?如果我只输入一些空格,IsNullOrEmpty方法会识别字符串为空吗?