c# - 发生“System.ArgumentOutOfRangeException”类型的未处理异常
问题描述
此代码应该将电子邮件解析为用户名和域名。如果我输入 apa@gmail.com,则会显示一个消息框并显示“用户名:apa 域名:gmail.com”。我改编了教科书中的代码,并在 和 处不断收到上述错误email = Email.Remove(0, 1);
消息domainName = Email.Remove(Email.Length -1, 1)
。有什么建议么?
public partial class StringHandling : Form
{
string email = "";
string state = "";
string city = "";
int zipCode = 0;
public StringHandling()
{
InitializeComponent();
}
private void btnParse_Click(object sender, EventArgs e)
{
string Email = "";
string domainName = "";
email = txtEmail.Text;
email = Email.Trim();
if (email.StartsWith(""))
email = Email.Remove(0, 1);
if (email.EndsWith("@"))
domainName = Email.Remove(Email.Length - 1, 1);
MessageBox.Show("Username: " + email + "\n" + "Domain Name: " + domainName);
解决方案
email.StartsWith("")
将永远是真的(你实际上并没有指定电子邮件应该以什么开头)。由于它总是以空字符串开头,因此当您尝试调用email = Email.Remove(0, 1);
. 您正在尝试删除第一个字符,并且由于字符串为空,因此没有第一个字符(字符串总长度为 0),因此您得到了该异常。
我的建议:避免使用不同大小写的多个变量(即电子邮件和电子邮件)。这导致了一些混乱。Email
这些是 2 个单独的变量,并且您从未为(Capitol E)分配任何内容,因此在 , 的情况下email = Email.Remove(0, 1);
,Email
将始终为空字符串并引发此错误。
推荐阅读
- sql - 排除其中两列的值都为零的行,而不是一个或另一个
- spring-boot - Backbase Integration with Spring Microservices
- python - 如何在嵌入 discord.py 中将长字段作为页面发送?
- java - 如何在 mapstruct 接口中注入 guice 依赖项 - java
- python-3.x - 如何从每日收益中计算价格?
- input - 列表理解 - 多个输入
- reactjs - React Hooks 和 React Query (useQuery):仅在单击按钮时调用 API 调用/查询
- c# - .NET Core 3 Web API:[FromBody] 如何绑定抽象类属性
- powershell - 从 cmd 和 PowerShell 将分号作为参数传递给 .bat 文件
- javascript - Onclick javascript不工作文件jsp java