Visual Studio 2019中.NET Framework 2.0支持partial method?VS2012为何报错?
问题解答
核心要明确:C#语言版本和.NET Framework目标框架版本是相互独立的,语法特性的支持取决于你使用的C#编译器版本,而非目标框架的版本。
为什么VS2019中用.NET Framework 2.0写partial method不报错
VS2019默认搭载的是更高版本的C#编译器(比如C# 7.3及以上),这些编译器原生支持C# 3.0及之后的语法特性,包括分部方法(partial method)。
虽然分部方法是C# 3.0引入的,但它的实现可以被编译器编译成兼容.NET Framework 2.0的IL代码:
- 如果分部方法只有定义没有实现,编译器会直接移除所有对该方法的调用,不会生成任何IL;
- 如果有实现,编译后的代码和普通方法调用完全一致,.NET Framework 2.0的CLR可以正常执行。
为什么VS2012中同框架设置ISO-2会报错
当你在VS2012中设置ISO-2时,相当于强制编译器使用C# 2.0语言规范进行编译。而分部方法是C# 3.0才新增的语法特性,C# 2.0编译器根本不认识partial修饰的方法定义,因此会直接抛出语法错误。
内容的提问来源于stack exchange,提问作者Sudarshan Patil
相关产品推荐
相关产品推荐

