小编LLL*_*LLL的帖子

"using"语句中的灾难性故障,即使用(var a = new stream())和a.Something()会引发异常

所以我理解在using语句结束时,调用dispose方法.

如果我使用a会发生什么 'using(var a = new Stream()) { a.SomethingThrowsAnException() }'

流是否仍然通过他处理方法?

我写了一个实现IDisposable的类,它是关键任务,我不会丢失内存中的内容,因此我计划在发生灾难性事件时序列化数据,即我有一个像我正在使用的对象的自定义流.

有什么建议?

谢谢.

.net c# idisposable using finalize

1
推荐指数
1
解决办法
198
查看次数

Windows UI 自动化。如何自动化Windows资源管理器滚动条?

我正在使用 Windows UI 自动化框架:http : //msdn.microsoft.com/en-us/library/System.Windows.Automation(v=vs.110).aspx

我遇到的问题是微软提供的 UI 自动化框架似乎对某些 Windows 资源管理器视而不见。我可以找到根 AutomationElement“滚动条”,但是我找不到它的子组件,即按钮、位置等。这很奇怪,因为显然很多 WPF 应用程序会使用 Windows 资源管理器来选择文件,因此 Microsoft 会将其视为一个主要错误在其框架内。所以我一定是做错了什么?

在此处输入图片说明

下面的代码演示了我在做什么。root是 Windows 资源管理器 AutomationElement。我验证了这一点,因为我可以看到滚动条项目,因为它有一个自动化 ID。我还验证了它是正确的垂直滚动条,因为 Windows 资源管理器中有两个。

 AutomationElement functionControl = root.FindFirst(TreeScope.Descendants |         
 TreeScope.Element | TreeScope.Subtree,new 
 PropertyCondition(AutomationElement.NameProperty, "Page down"));
Run Code Online (Sandbox Code Playgroud)

c# automation microsoft-ui-automation

0
推荐指数
1
解决办法
1824
查看次数

C#覆盖〜取一个函数

理想情况下,我想实现类似的东西 var queryResult = ~( () => function(arg) );

我写了一个自动化框架,我厌倦了为它编写长行代码.它使用查询来搜索UI和其他数据源.所以我想,由于这个项目与源代码是分开的,我可以通过操作员来解决问题.以下编译很好,但我收到一个错误:

不能将运算符'〜'应用于lambda表达式的操作数

public struct Query<T>
{
    public static Query<T> operator ~(Query<T> func)
    {
        return Poll.IdleFor(() => func, 10000);
    }
}
Run Code Online (Sandbox Code Playgroud)

在正在运行的代码的另一部分中,我有一个方法签名,如下所示:

static T IdleFor<T>(Func<T> arg, long waitTimeInMilliseconds)<T>(Func<T> arg, long milliseconds)

我通过它来称呼它 MyStaticClass.IdleFor( () => myFunction(val), 10000)

我在这里错过了什么?

c# overloading operators

0
推荐指数
1
解决办法
210
查看次数