我正在测试新的闪亮的C#7.1 / 7.2 / 7.3功能,当我尝试使用此ref类时,它无法正常工作,与此同时,此ref int仍然有效,你们对如何制作它有任何想法吗与班级一起工作?
代码示例:
public static bool Works(this ref int i)
{
return i == 0;
}
public static bool DontWorks(this ref Test i)
{
return i.A == 0;
}
public class Test
{
public int A { get; set; }
}
对不起,标题有点糟,但是我不知道如何改善标题,如果愿意,可以给我建议或编辑。
感谢您的时间,祝您有愉快的一天。
答案 0 :(得分:1)
Ref扩展方法仅适用于已知为结构的类型。这是故意的。可以在feature proposal document中找到其背后的原因。
此外,常规类类型是引用类型。与reference type as a parameter不同,传递with value type parameters不会复制对象。