【发布时间】:2015-04-20 00:25:29
【问题描述】:
您好,我是这个伟大社区的新手,我有第一个问题。希望这个在正确的地方(我希望我的英语是正确的):
我是新手开发人员,我必须改进 C# 应用程序,所以我找到了这段代码,我想知道这是否是正确的方法:
ObjClass obj = new ObjClass();
obj.SomeText = TextBox1.Text;
obj.SomeNumber = Convert.ToInt32(TextBox2.Text);
ObjClass的定义如下:
using System;
namespace SomeObject
{
public class ObjClass : IDisposable
{
public string SomeText { get; set; }
public int SomeNumber{ get; set; }
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
}
然后在使用对象后,完成或处置对象的代码如下:
if(obj.SomeNumber != null)
{
//doing something else
obj.Dispose();
}
【问题讨论】:
-
请注意,该答案不正确,它没有实现终结器。不知道为什么它首先被赞成,它只是传播了糟糕的编码实践。
-
@Blindy True。对此可能有更好的欺骗目标或规范答案
-
@James 可能是有史以来最好的 C# IDisposable 答案:stackoverflow.com/questions/538060/…
-
是什么让这个问题可能与Proper use of the IDisposable interface重复