What are the things you need to remember to make your code interoperable between language?
Common language specification complicance isn't the default
Operation overload : not Common Language Specification(CLS)
CLS-Compliant : add [Assembly:system.CLSCompliant(true)] 를 넣어줘야지 된다.
이는 Language가 다를때, 서로간에 CLS에 대해서 명확한 정의를 따르는지에 대한 Compiler level에서의 정의가 될 수 있다.
Optional parameters break interoperability
VB.NET에서 허용되는 option parameter의 경우에는 C#에서는 허용되지 않기 때문에, 반드시 그 값을 적어줘야지 된다.
Mixing case between class members breaks interoperability
VB.NET에서는 각 값의 case에 따라서 다른 Property, member, method를 가질 수 있다. 이는 VB.NET과 C#을 섞어서 사용하는 경우에 CLS를 위반하게 된다.