【发布时间】:2016-01-05 09:59:11
【问题描述】:
我recently learned 如何使用Microsoft.VisualBasic.FileIO.TextFieldParser 解析文本输入。在给我的示例中,TextFieldParser 是使用关键字 using 调用的
using (var parser = new Microsoft.VisualBasic.FileIO.TextFieldParser(new StringReader(str)))
虽然在some further researches 之后,我注意到在TextFieldParser 中使用using 关键字的做法并不普遍。
据我了解,.Net Framework 既有托管资源也有非托管资源。当我们使用非托管资源时,我们应该worry about内存泄漏,因此我们应该处理我们使用的非托管资源。一种最好的方法是将它们放在using 上下文中。
所有这些都让我想到两个问题,一个是特殊的,一个是一般的。以下是我的问题:
- 特别之处:TextFieldParser 是托管的还是非托管的?
- 一般:是否有一种确定的方式让我们知道资源是托管还是非托管(例如查看类中的
X事物等,甚至检查某些东西来自MSDN - 如果需要检查 - 可以)。在我短暂的编程经验中,有人告诉我一些指导,例如 (i) 大多数.Net类是托管的,(ii) System.Drawing 类有一些非托管资源,(iii) 提防所有数据库、网络和 COM类,因为它们通常是非托管的,等等......我一直在添加到现在的列表。但我想知道是否有任何确定方法可以知道这一点?
如果有经验的人能在这个问题上帮助我进一步指导我,我将不胜感激。
【问题讨论】:
标签: c# .net unmanaged managed textfieldparser