【问题标题】:Split First Name and Last name from Combobox从组合框中拆分名字和姓氏
【发布时间】:2019-04-04 02:36:43
【问题描述】:

我有以下Edit_Click 函数,它在string lname = Strings.Trim... 行上出错。它表示名称 Strings 在当前上下文中不存在。我错过了什么?

private void Edit_Click(object sender, EventArgs e)
{
    string[] fullname = ComboBox1.Text.Split(',');
    string lname = Strings.Trim(fullname[0]);
    string fname = Strings.Trim(fullname[1]);
    for (int i = 0; i <= CustomerList.count - 1; i++)
    {
        Customers c = CustomerList(i);
        if (c.last == lname & c.first == fname)
        {
            TextBox1.Text = lname;
            TextBox2.Text = fname;
            CurrentIndx = i;
            CurrentCustomer = c;
            break;
        }
    }
}

【问题讨论】:

  • fullname[0].Trim(); 不是Strings.Trim(fullname[0]);
  • 如果它是一个类方法,它将是String,而不是Strings。但是,正如 Loocid 所指出的,它是一种对象方法。

标签: c# string trim


【解决方案1】:

正如 Loocid 和 paxdiablo 在 cmets 中指出的那样,如果方法是静态的,它将位于 String 而不是 Strings

因为Trim()是一个实例方法,你需要在你的string对象上调用它:

string lname = fullname[0].Trim();
string fname = fullname[1].Trim();

您的下一个问题是这一行(尽管这可能是您写问题时的错字):

Customers c = CustomerList(i);

应该是这样的:

Customers c = CustomerList[i];

附带说明,您可能还想检查fullnameLength 属性。如果用户输入“测试”,您将只有 1 个条目,因此您的代码将失败并显示 IndexOutOfRangeException

【讨论】:

    【解决方案2】:

    错误Strings“当前上下文中不存在” 表示您尝试使用的对象不存在。您可以在 fnamelname 上使用 Trim,因为它是一种扩展方法。

    string lname = fullname[0].Trim();
    string fname = fullname[1].Trim();
    

    【讨论】:

      猜你喜欢
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多