Covariance and Contravariance FAQ

What are covariance and contravariance? In C#, covariance and contravariance enable implicit reference conversion for array types, delegate types, and generic type arguments.Covariance preserves assignment compatibility and contravariance reverses it. The following code demonstrates the difference between assignment compatibility, covariance, and contravariance. // Assignment compatibility. string str = "test"; // An object of a more … Continue reading Covariance and Contravariance FAQ

C# Programming Tools

The C# Team has scoured the Web for other implementations of the CLI, cool object browsers, IDE tricks, add-ins, obfuscators, and other useful tools and utilities that will help you get your job done faster. Check out the Classes and Libraries page for more links to useful tools, frameworks, and class libraries, including code-generation tools. Featured … Continue reading C# Programming Tools