为什么禁止Extension Method使用ref修饰符调用?
Extension Method
ref
这是可能的:
public static void Change(ref TestClass testClass, TestClass testClass2) { testClass = testClass2; }
而这个不是:
public static void ChangeWithExtensionMethod(this ref TestClass testClass, TestClass testClass2) { testClass = testClass2; }
但为什么?
您必须指定ref并out明确。您将如何使用 扩展方法 执行此操作?此外,您真的 要 这么做吗?
out
TestClass x = new TestClass(); (ref x).ChangeWithExtensionMethod(otherTestClass); // And now x has changed?
还是ref只为扩展方法中的第一个参数指定零件?
老实说,这对我来说听起来很奇怪,并且是不可读(或至少难于预测)代码的秘诀。