C# & VB6: How to convert 'with' statement to C#?
c#, vb6
Solution
You haven't shown the `EventThief` code, which makes it impossible to tell, really. But in general:
With expression
.Foo = a
.Bar = b
End With
would translate to
var x = expression;
x.Foo = a;
x.Bar = b;
(Of course you can specify the type explicitly...)
The commonality here is that `expression` is only evaluated once. In the particular code you showed, there's no need for an extra variable of course, as the expression is only the local variable in the first place.
Your actual error looks like it's just to do with the types of `EventThief.RIGHT_DOWN` etc rather than with the WITH statement.
EDIT: Okay, you've now shown the original EventThief code which does use Booleans... but you haven't shown your ported `EventThief` code. You wrote:
It says et.LEFT_UP is a short
... but it shouldn't be. In the original it's a `Boolean`, so why is it a `short` in your port?
Problem
How can I convert this piece of VB6 code into C#? http://pastebin.com/f16e19351 I've tried on my own and got so far to: http://pastebin.com/f7ca199f0 EDIT: Code I'm trying to translate exists here: http://www.codeproject.com/KB/vb-interop/MouseHunter.aspx