【发布时间】:2023-03-04 22:21:01
【问题描述】:
有没有办法在 C# 2010 (.Net 4) 中不使用 try-finally 块来处理方法变量?
故事: 我有很少的文件处理程序方法。每个处理程序(方法)都可以在执行过程中中止。 我喜欢在退出方法之前处理所有方法的对象。 为每个处理程序编写 dispose 方法的选项不是一个选项。
谢谢
这展示了总体思路: `公共静态类比较 { 私有静态 bool CompareXmls(...) { //根据4个条件,在3个出口点有7个对象要放置
//General method flow:
//1. init part of the object
//2. if(!<condition1>)
//disposed objects
//exit method
//3. perform some actions
//4. init some of the other objects
//2. if(!<condition2>)
//disposed objects
//exit method
//and so on...
}
private static bool CompareJpgs(...)
{
//has 12 object to be disposed in 10 exit points acordding to 4 conditions
}
private static bool CompareBitMaps(...)
{
//has 5 object to be disposed in 3 exit points acordding to 4 conditions
}
private static bool CompareTxts(...)
{
//has 12 object to be disposed in 10 exit points acordding to 4 conditions
}
}`
我还有另外 7 种比较方法
【问题讨论】:
-
为什么不能选择?
-
请提供一个示例,它是你所说的方法的类吗?
-
如果你能把一些代码放在这里会很好,否则有太多方法可以抽象出处理句柄......是的,你必须创建一些抽象来这样做,它不会自动完成
-
“中止”是什么意思?
-
Oded - 这不是一个选项,因为我有太多方法,每个方法都有完全不同的对象。
标签: c# dispose filestream