我有一个读取位图的功能。 (非简化函数中有足够的代码可以使单独的函数成为可取的。)
Function readBitmap(fName As String) As Bitmap
Using bmp As Bitmap = New Bitmap(fName)
Return bmp.Clone
End Using
End Function
它被称为:
Using qbmp As Bitmap = readBitmap(fname)
' play with qbmp
End Using
在调用和调用代码中都有Using
,在函数返回时,位图在内存中重复一会儿。通过消除函数中的Using
并保留原始位图分配可以避免这种情况:
Function readBitmap(fName As String) As Bitmap
Dim bmp As Bitmap
bmp = New Bitmap(fName)
Return bmp
End Function
这是个好主意吗?假设正确的错误处理,是否存在内存泄漏或其他问题的风险?有更好的方法吗?