无法在此ref ClassName(byRef)方法上使用类功能C#7.2

时间:2018-11-23 12:58:08

标签: c# c#-7.2

我正在测试新的闪亮的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; }
    }

对不起,标题有点糟,但是我不知道如何改善标题,如果愿意,可以给我建议或编辑。

感谢您的时间,祝您有愉快的一天。

1 个答案:

答案 0 :(得分:1)

Ref扩展方法仅适用于已知为结构的类型。这是故意的。可以在feature proposal document中找到其背后的原因。

此外,常规类类型是引用类型。与reference type as a parameter不同,传递with value type parameters不会复制对象。