前几天做一个条件
if(Name.ToString()=="管理员")
{
}
如果 Name的值是管理员的话就走大括号里德代码。
奇怪的是:现在这个条件怎么也不成立了。无论Name的值是不是管理员,程序死活就不走大括号离得代码。
请大家帮忙解决一下!!!!!!!!!!!!!
if(Name.ToString()=="管理员")
{
}
如果 Name的值是管理员的话就走大括号里德代码。
奇怪的是:现在这个条件怎么也不成立了。无论Name的值是不是管理员,程序死活就不走大括号离得代码。
请大家帮忙解决一下!!!!!!!!!!!!!
if(Name.ToString().Trim()=="管理员")
{
//your code
}
所以要先知道Name是个什么东东
{
//your code
}
{
/..............
}
{
//your code
}
{
。。
}
,我试过调试了从session取得的Name值是管理员,但是走这个条件就是不行
{
//我就不信不执行这儿的代码
}还是检查你的name实际值吧
2.检查你的中文输入的时候是不是全角和半角不对
{
/..............
}
应该不是“管理员”,是的话会相等
var name=session["name"].tostring();看看它的值是多少..还有就是不要用中文来表示管理员之类的..不是明志之举
不行的话再调试下,看下值是什么类型的
不行的话再调试下,看下值是什么类型的
name.Equals("管理员")
这两个是不同的概念。比较字符串的时候用Equals是最安全的
{
}
if(a.Equals("aaa"))
{
.....
}else
{
....
]
if(name.text.trim()=="管理员")
{
//执行
}
或者你这样看一下
string name=name.text.trim();
if(name="管理员")
{}
这两个方法匹配一下
{}
equal函数是比较对象的值相等
而==是判断的是否是同一个对象
举个例子吧:
string a="管理员";
string b="管理员";
if(a==b)
{
messageBox.show("相等")
}
else
{
messageBox.show("不相等");
}//结果肯定是“不相等”
如果没记错的话,string的==是重载过了的 用于判断值是否相等
{
MessageBox.Show("不等!");
return;
}
MessageBox.Show("等!");
if (name.Equals("管理员") == false)
{
MessageBox.Show("不等!");
return;
}
MessageBox.Show("等!");
你把ToString()的值赋给一个字符串
然后调试下看看,值到底是什么程序是不会出错的,.NET也不可能有这样的bug
明明一个if语句是成立的,按道理运行的时候会进入if语句内部的,但是它就是不进去,结果我们用断点调式后,它才进去。不知道其他人遇到过没,而且我们也都知道,运行的时候编译器已经对整个解决方案都进行了一次生成!对于上面我描述的问题,不知道是不是vs有bug还是(个人理解)
建议LZ先进行断点调试,然后我觉得应该是没问题了。
此消息通过 【CSDN论坛 Winform测试版】 回复!龙月.NET的博客