如何找到所有引用 C# 9 记录定义的字段?

12

重现:

public class TestCase
{
    public Boolean MyFieldIsFour(MyRecord myRecord)
    {
        return myRecord.MyField == 4;
    }
}

public record MyRecord(int MyField);

右键单击 int MyField,选择查找所有引用。 Visual Studio找不到任何对 MyField的引用。我本来希望它能在myRecord.MyField处找到引用。如果将 MyRecord更改为一个class,那么Visual Studio就可以按照预期找到引用了。

这是Visual Studio的一个BUG吗?如何使用record来查找引用呢?


2
int MyField 是构造函数参数,所以你要查找所有对它的引用,而不是相关的 MyField 属性 - madreflection
1
我不会把那称为一个错误。Visual Studio只是还没有被赋予将主构造函数参数链接到其关联属性以查找引用的能力。必须有人花时间添加该功能。 - madreflection
考虑到所有属性都是必需的且不可变的,您需要多少次查找仅涉及“MyProperty”的引用?该属性只能由构造函数设置,因此如果您想查找它的设置位置,只需要查找构造函数调用即可。 - Panagiotis Kanavos
2
好的,实际上它正在搜索构造函数属性。但是我该如何让它搜索对应(生成的)属性的引用? - David S.
3
你是否在微软提出了问题?无法轻松搜索记录成员的用法而不使用hack方法真的很烦人,这不是他们应该追求的用户体验。 - Benni
显示剩余5条评论
1个回答

5

我猜现在这就是答案。感谢提供的链接。 - David S.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接