C#2008
我一直在研究这个问题,我仍然对一些问题感到困惑.我的问题如下
我知道如果你处理非托管资源,你只需要一个终结器.但是,如果您使用托管资源来调用非托管资源,您是否仍需要实现终结器?
但是,如果您开发一个不直接或间接使用任何非托管资源的类,您是否可以实现IDisposable该类,以便您的类的客户端可以使用'using statement'?
是否可以接受实现IDisposable,以便您的类的客户端可以使用using语句?
using(myClass objClass = new myClass())
{
// Do stuff here
}
Run Code Online (Sandbox Code Playgroud)我在下面开发了这个简单的代码来演示Finalize/dispose模式:
public class NoGateway : IDisposable
{
private WebClient wc = null;
public NoGateway()
{
wc = new WebClient();
wc.DownloadStringCompleted += wc_DownloadStringCompleted;
}
// Start the Async call to find if NoGateway is true or false
public void NoGatewayStatus()
{
// Start the Async's download
// Do other work here
wc.DownloadStringAsync(new Uri(www.xxxx.xxx));
}
private void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
// …Run Code Online (Sandbox Code Playgroud)我用VS2010,目标是.Net 2.0(VB.Net Windows Form应用程序)
如何确定什么是 我决定使用的.Net目标,因为我知道如果用户有更高的版本就可以
我用.Net 2.0在XP上测试了我的应用程序,运行正常.
我卸载了.Net 2.0 [看看用户可能收到的错误消息]
[一些文件仍留在C:\ Windows\Microsoft.Net\Framework\v2.0.50727但不是所有文件]
我安装了.Net 4 [...还需要安装Windows Installer 3.1和Windows Imaging Component作为预先要求..]
但现在当我运行我的应用程序时,我收到错误 - "无法找到运行此应用程序的运行时版本"
那么我应该如何推荐我的客户呢?安装2.0?
谢谢,
Atara
更新:我将建议我的XP用户安装.Net 3.5 SP1