gpt4 book ai didi

C# 通用约束无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:40 24 4
gpt4 key购买 nike

<分区>

我有以下代码:

public interface IEnrollment
{
bool IsGood { get; set; }
}

public interface IEnrollmentToRegion
{
int RegionId { get; set; }
}

public class ByRegion : IEnrollmentToRegion
{
public int RegionId { get; set; }
}

public class Enrollment : IEnrollment
{
public bool IsGood { get; set; }
public ICollection<ByRegion> Regions { get; set; }
}

public class Main
{
public void DoSomething()
{
var e = new Enrollment();
if (isEnrolled(e, c => c.Any(l => l.RegionId == 10)))
{

}
}

private bool isEnrolled<T>(Enrollment enrollment, Func<ICollection<T>, bool> test) where T : IEnrollmentToRegion
{
return true;
}
}

我想做的是创建方法 isEnrolled,它接受 IEnrollment 类型的对象,在这个方法中我将做一系列检查以查看它是否返回 true。我要检查的一件事是对象集合(在上面的示例中,它被简化为只有 1 个类 ByRegion 类,但在我的真实情况下,有多个注册类,每个类都有自己单独的集合,有不同的类型,但所有类型都有一个名为 RegionId 的属性。

所以我想传入一个函数来检查这些不同的集合以查看 RegionId 是否在集合中。我遇到的问题是在线上出现错误c.Any(l => l.RegionId == 10)) 表示它不知道 RegionId 是什么。事实上,当我点击 .在 l 之后,我没有得到任何智能感知下拉菜单。我不确定为什么我没有得到任何下拉列表,因为对 T 有一个限制,即 T 应该是 IEnrollmentToRegion 类型,并且该类型上有 RegionId。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com