Question: This is **code-related** as in what the compiler will allow you to do in one language, but not allow you to do in another language (e.g. optional parameters in VB don't exist in C#).

Please provide a code example with your answer, if possible. Thank you!

Answer: 
VB.NET has support for CIL Exception Filters, C# doesn't:

```
Try 
  ...
Catch ex As SomeException When ex.SomeProperty = 1
  ...
End Try 

```
In VB you can implement an interface with a method of any name - i.e. a method "Class.A" can implement interface method "Interface.B".

In C#, you would have to introduce an extra level of indirection to achieve this - an explicit interface implementation that *calls* "Class.A".

This is mainly noticeable when you want "Class.A" to be `protected` and/or `virtual` (explicit interface implementations are neither); if it was just "private" you'd probably just leave it as the explicit interface implementation.

C#:

```
interface IFoo {
    void B();
}
class Foo : IFoo { 
    void IFoo.B() {A();} // <====  extra method here
    protected virtual void A() {}
}

```

VB:

```
Interface IFoo
    Sub B()
End Interface
Class Foo
    Implements IFoo
    Protected Overridable Sub A() Implements IFoo.B
    End Sub
End Class

```

In the IL, VB does this mapping directly (which is fine; it is not necessary for an implementing method to share a name).