gpt4 book ai didi

c# - 关于声明泛型嵌套类的编译错误

转载 作者:太空狗 更新时间:2023-10-30 00:03:14 24 4
gpt4 key购买 nike

我收到关于这段代码的编译错误:

错误 1 ​​类、结构或接口(interface)成员声明中的无效标记“(”
错误 2 不能在 for、using、fixed 或 declaration 中使用多个类型

知道为什么吗?另外,是否可以如下声明字典?

public class S
{
private class ObInfo<T>
{
private string _type;
private T _value;

public ObInfo<T>(string i_Type, T Value)
{
this._type = i_Type;
this._value = Value;
}

public ObInfo()
{}
}

private static Dictionary<int,ObInfo> sObj= new Dictionary<int,ObInfo>();
}

最佳答案

public ObInfo<T>(...) {

构造函数不能接受泛型参数。
删除 <T>一切都会好起来的。

类中的所有方法(和类型)都继承该类的泛型参数;如果方法需要单独的类型参数,您应该只在泛型类中创建泛型方法。 (这应该避免;这很困惑)


此外,开放通用类型实际上并不是类型;你不能有 Dictionary<int,ObInfo>没有为 ObjInfo 指定类型参数.
相反,您可以为字典使用非通用接口(interface),或者将类型参数移动到外部类并拥有 separate dictionary per type parameter。 .

关于c# - 关于声明泛型嵌套类的编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13916939/

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