C# 以下模式可以接受吗?
我正试图找到一种可以接受的模式,使用企业库从数据库中读取数据。你如何看待下面的模式(我的意思是,<代码>中的空校验>最后/代码>块)? 此空检查是否可以接受,或者是否有更优雅的方法解决此问题?它与:C# 以下模式可以接受吗?,c#,design-patterns,C#,Design Patterns,我正试图找到一种可以接受的模式,使用企业库从数据库中读取数据。你如何看待下面的模式(我的意思是,中的空校验>最后/代码>块)? 此空检查是否可以接受,或者是否有更优雅的方法解决此问题?它与: if (NewReader != null) ... 从造型的角度来看,我更喜欢它 更新: 由于NewReader似乎实现了IDisposable,只需使用构造将其包装在中即可 例如: using (var r = new ReaderSomething()) { try { } cat
if (NewReader != null) ...
从造型的角度来看,我更喜欢它
更新:
由于NewReader
似乎实现了IDisposable
,只需使用构造将其包装在中即可
例如:
using (var r = new ReaderSomething())
{
try
{
}
catch {}
}
如果(NewReader==null),我将使用
。这是检查null
的默认方法。你这样做的方式是相同的,但它看起来很奇怪,因此可能会混淆人们
此外:你为什么不使用呢?使您的代码更加清晰:
try
{
using(IDataReader NewReader = (SqlDataReader)(SqlDatabase.ExecuteReader(SqlCommand)))
{
/* Do some work with NewReader. */
}
}
catch /* As much 'catch' blocks as necessary */
{
/* Handle exceptions */
}
我更喜欢使用“使用”块作为:
using(<your reader object>)
{
//read data from reader
}
使用()
{
//从读卡器读取数据
}
只是想为人们上面所说的话添加一点细节
使用using块作为,无论是否发生异常,由于IDataReader的实现也必须实现IDisposable,将自动调用Dispose方法
using(<your reader object>)
{
//read data from reader
}