我试图在Language-Ext中使用Union类型,但收到错误:“目标运行时不支持默认接口实现”和“类型或命名空间名称'InconsistentFirstName‘找不到”
我的代码如下所示:
[Union]
public interface Inconsistency
{
public Inconsistency InconsistentFirstName(string localValue, string contactCentreValue);
public Inconsistency InconsistentSurname(string localValue, string contactCentreValue);
public string GetFieldName(Inconsistency inconsistency)
=> inconsistency switch
{
InconsistentFirstName n => "Name",
InconsistenctSurname s => "Surname",
_ => ""
};
}发布于 2021-01-22 18:45:23
需要将GetFieldName添加到单独的类文件中。有一个由代码自动生成的分部类,叫做InconsistencyCon,所以我想要实现的东西可以用下面的代码来实现:
[Union]
public abstract partial class Inconsistency
{
public abstract Inconsistency InconsistentFirstName(string localValue, string remoteValue);
public abstract Inconsistency InconsistentSurname(string localValue, string remoteValue);
}
public static partial class InconsistencyCon
{
public static string FieldName(this Inconsistency inconsistency) =>
inconsistency switch
{
InconsistentFirstName n => "Name",
InconsistentSurname s => "Surname",
_ => ""
};
public static string Test(Inconsistency inconsistency)
{
if (inconsistency is InconsistentFirstName n)
{
var a = n.LocalValue;
var b = n.FieldName;
// etc
}
}
}https://stackoverflow.com/questions/65843164
复制相似问题