<分区>
C# 或 .NET Framework 中最大的设计缺陷有哪些?
示例:没有不可为 null 的字符串类型,您必须在从 IDataReader 获取值时检查 DBNull。
<分区>
C# 或 .NET Framework 中最大的设计缺陷有哪些?
示例:没有不可为 null 的字符串类型,您必须在从 IDataReader 获取值时检查 DBNull。
最佳答案
Reset()
IEnumerator<T>
上的方法是一个错误(对于迭代器 block ,语言规范甚至要求这会引发异常)IEnumerable<out T>
和 Func<in T, out TResult>
,但不包括具体类型(如 List<T>
))的协变/逆变支持。ApplicationException
而不是失宠 - 这是一个错误吗?Contains
,然后是 Add
),因此同步不同操作的集合是都那么有用
System.Collections.Concurrent
types , 与 TryAdd
, GetOrAdd
, TryRemove
等已添加到 .NET Framework 4.0 中 - 虽然接受工厂委托(delegate)的方法不保证每个键只调用一次工厂。using
/lock
模式——也许允许他们共享一个可重用(可扩展?)的语法;你可以通过返回 IDisposable
来模拟这个并使用 using
, 但它本来可以更清楚Foo(SqlConnection! connection)
这样的语法(注入(inject)空检查/throw
)会很好(对比 int?
等)
dynamic
稍微解决了这个问题,或者您可以启用它 like this foreach
的 while 中外声明的迭代器变量扩展,意味着匿名方法/lambdas 捕获单个变量,而不是每次迭代一个变量(线程/异步/等痛苦)
关于C# (.NET) 设计缺陷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/411906/