我有两个项目,其中一个项目被添加作为对另一个项目的引用以使用一些函数和类..
我如何使用主项目中存在的一些新属性/字段扩展原始类并在第二个项目中使用它?
如果它在同一个项目中,我可以像这样扩展它
public class ClassA
{
public string Name{ get; set; }
public string Phone{ get; set; }
}
public class ClassB : ClassA
{
public int id{ get; set; }
public string someField{ get; set; }
}
我只需要在项目2中使用ClassB中的字段,并向对象添加一些值
List<ProjectA.ClassA> data = await SomeFunction();
data.ForEach(x =>
{
x.id= 1;
x.someField = "some value";
});
我在主项目中有很多课程,我想在第二个项目中用新课程扩展所有课程
SomeFunction 返回 ClassB 类型的对象列表,对吗?如果要访问 ClassB 类型的属性,您的列表必须是 ClassB 类型。我不建议进行类型转换,因为当返回的对象类型不正确时,它可能会失败。
如果您只迭代数据,则可以使用 IEnumerable,这是所有集合都实现的接口。
IEnumerable<ClassB> data = await SomeFunction();
data.ForEach(x =>
{
x.id= 1;
x.someField = "some value";
});
如果 SomeFunction 只返回 ClassA 类型的对象,你的代码将永远无法工作。