使用.NET 3.5和C#3.0,
IList list = new List<bool?>();
list.Add(null);
Run Code Online (Sandbox Code Playgroud)
抛出一个ArgumentException,只是感觉不对.
List<bool?> list = new List<bool?>();
list.Add(null);
Run Code Online (Sandbox Code Playgroud)
完美的工作.
这是微软代码中的错误吗?
在现实生活中如何产生这种错误的一个例子:
new JavaScriptSerializer().Deserialize<List<bool?>>("[true, false, null]");
Run Code Online (Sandbox Code Playgroud)
ito*_*son 14
是的.有关其他报告,请参阅http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/abc99fb5-e218-4efa-8969-3d96f6021cee/.基本上当你List<bool?>通过它的弱类型IList实现访问它时,它会在尝试将项添加到内部存储之前进行一些类型检查 - 并且它会为可空类型检查此类型是否错误.
| 归档时间: |
|
| 查看次数: |
5896 次 |
| 最近记录: |