c#高手进 .net高手进 这个if for语句怎么整啊 很简单的 大家帮看看

来源:百度知道 编辑:UC知道 时间:2024/07/04 01:34:26
protected void Button3_Click(object sender, EventArgs e)
{
string liss = TextBox1.Text;
if (liss == null)
{
Response.Write("你还没有输入角色");
}
else
{
for (int i = 0; i < ListBox4.Items.Count; i++)
{

if (ListBox4.Items[i].Text == TextBox1.Text)
{

Response.Write("此角色已存在");
}

Roles.CreateRole(TextBox1.Text);
ListBox4.Items.Ad(TextBox1.Text);
}
}
}
这句话的意思是我用textbox1中的内容添加到listBox中去 直接添加如果不在
textbox1中输入值就会使Roles.CreateRole(TextBox1.Text); 说它不能为空
如果textbox1中和listBox中的内容重复就不让其添加 要是不判断也会出错
可是为什么我上面两项都用if 和for判断了 还是出现这个错误呢?
是不是我的if语句判断的不对 所以跳过了Response.Write("你还没有输入角色");和Response.Write("此角色已存在");啊

你的for语句执行的内容有问题
第一次for运行以后 已经把内容添加到listbox了
for依然在对比 结果就是 总是会对比出重复内容

首先要给你说明白的一点是,你的第一个if判断和你的本意不相关。

string liss = TextBox1.Text;
if (liss == null)
{
Response.Write("你还没有输入角色");
}
TextBox的Text属性默认值是String.Empty,也就是一个空串,并不会等于一个null的。所以第一个判断无论如何都会进入else分支。

因为在一个类中声明的字段都是需要初始化值的,这个Text属性就被初始化为一个String.Empty的值,要判断这样类似的字符串时,可以使用string.IsNullOrEmpty(string)来判断该字符串为空或者为一个空串

protected void Button3_Click(object sender, EventArgs e)
{
string liss = TextBox1.Text;
if (liss == null)
{
Response.Write("你还没有输入角色");
}
else
{
for (int i = 0; i < ListBox4.Items.Count; i++)
{

if (ListBox4.Items[i].Text == TextBox1.Text)
{

Response.Write("此角色已存在");