C# 在C中构建泛型继承类时出现问题#

C# 在C中构建泛型继承类时出现问题#,c#,generics,abstraction,C#,Generics,Abstraction,我写了以下课程,我不知道为什么会这样: return new PersonEncrypterDecrypter() 类EncrypterDecrypterBuilder中的密码无效 据说铸造是不允许的,但我看不出有任何理由认为这是一个问题 以下是代码的链接: 编辑:做了一些更改(代码链接已更新) 我写了一个main方法,如下所示: EncrypterDecrypter<Entity>e1 = EncrypterDecrypterBuilder<Entity>.Bui

我写了以下课程,我不知道为什么会这样:

return new PersonEncrypterDecrypter()
EncrypterDecrypterBuilder中的密码无效

据说铸造是不允许的,但我看不出有任何理由认为这是一个问题

以下是代码的链接:

编辑:做了一些更改(代码链接已更新)

我写了一个
main
方法,如下所示:

EncrypterDecrypter<Entity>e1 = 
EncrypterDecrypterBuilder<Entity>.Builder(eEncryptersDecrypters.Person);
 Dictionary<string, string> dic = e1.DataDecrypter(test);

在类
EncrypterDecrypterBuilder

中,第一个问题是使用
静态类EncrypterDecrypterBuilder
方法。静态构造函数 无法包含参数,也无法返回值。看起来您只需要一个静态方法。重命名此方法。此外,还需要在return子句中强制转换对象

public static class EncrypterDecrypterBuilder<T> where T : Entity
{
    public static EncrypterDecrypter<T> EncrypterDecrypterBuilderSomeNewName()
    {

        return (EncrypterDecrypter<T>)(new PersonEncrypterDecrypter());
    }
}
公共静态类EncrypterDecrypterBuilder,其中T:Entity
{
公共静态加密器加密器加密器加密器构建器用户名()
{
返回(EncrypterDecrypter)(newPersonEncrypterDecrypter());
}
}

查看所有代码:

在完成更改(名称和类型转换)后,我主要写了以下行:EncrypterDecrypter e1=EncrypterDecrypterBuilder.Builder(eencypterDecrypterDecrypters.Person);但在运行时,我得到一个无效的强制转换,但实体除外。您不能将EncrypterDecrypter强制转换为EncrypterDecrypter。使用公共接口EncrypterDecrypter,其中T:entity您想在本主题中涵盖很多内容(与第一期无关)。从这篇文章开始,我按照你的建议做了,但我犯了以下错误:非常感谢,它很有效,为了理解,我会阅读你的文章。
public static class EncrypterDecrypterBuilder<T> where T : Entity
{
    public static EncrypterDecrypter<T> EncrypterDecrypterBuilderSomeNewName()
    {

        return (EncrypterDecrypter<T>)(new PersonEncrypterDecrypter());
    }
}