首先我们先猜测以下面代码执行完毕后isbool的值。
bool isbool = true;
bool.TryParse("ddd", out isbool);
呵呵,如果你猜的是true,那么就错了,一直以为bool.TryParse如果转换失败将返回false,但不会对原参数的值进行更改,也就是说原参数还保持原来的值。今天在调试一个程序的时候才发现这么长时间一直以为的结果是错误的,正确的应该时:
如果bool.TryParse转换失败,总是会将原参数的值置为false。做了一些测试,结果如下:
bool isbool = true;
bool.TryParse("ddd", out isbool); --false
bool.TryParse("1", out isbool); --false
bool.TryParse("false", out isbool); --false
bool.TryParse("true", out isbool); --true