C# 通用-编译器警告CS0693或错误
我有我的泛型类和两个方法,它们接受委托作为参数(泛型或非泛型) 我有,但是如果我从第二个方法中删除C# 通用-编译器警告CS0693或错误,c#,generics,compiler-errors,warnings,C#,Generics,Compiler Errors,Warnings,我有我的泛型类和两个方法,它们接受委托作为参数(泛型或非泛型) 我有,但是如果我从第二个方法中删除: public MyClass<TResult> ContinueWith(ThreadInfo<TResult>.Parameterized arg) public MyClass ContinueWith(ThreadInfo.Parameterized arg) 我不能再使用这个方法了,如果我尝试,我会得到一个编译器错误,因为编译器认为我想使用第一个方法 我如何解
:
public MyClass<TResult> ContinueWith(ThreadInfo<TResult>.Parameterized arg)
public MyClass ContinueWith(ThreadInfo.Parameterized arg)
我不能再使用这个方法了,如果我尝试,我会得到一个编译器错误,因为编译器认为我想使用第一个方法
我如何解决这个问题?听起来你真的很想:
(您可能想在此处返回一个MyClass
,或者类似的东西-我们不知道您想要实现什么,这使得提供详细帮助变得很困难。)听起来您确实想要:
(您可能希望在此处返回
MyClass
,或者类似的内容-我们不知道您想要实现什么,因此很难提供详细的帮助。)您必须使用不同的参数名称。所以这取决于你想要实现什么
我想您需要这样的东西,返回类型为MyClass
,您可以为ThreadInfo
选择类型:
public MyClass ContinueWith(ThreadInfo.Parameterized arg)
{
//...
}
或者,如果只想在创建对象实例时选择类型:
public MyClass<TResult> ContinueWith(ThreadInfo<TResult>.Parameterized arg)
{
//...
}
public MyClass ContinueWith(ThreadInfo.Parameterized arg)
{
//...
}
必须使用不同的参数名称。所以这取决于你想要实现什么
我想您需要这样的东西,返回类型为MyClass
,您可以为ThreadInfo
选择类型:
public MyClass ContinueWith(ThreadInfo.Parameterized arg)
{
//...
}
或者,如果只想在创建对象实例时选择类型:
public MyClass<TResult> ContinueWith(ThreadInfo<TResult>.Parameterized arg)
{
//...
}
public MyClass ContinueWith(ThreadInfo.Parameterized arg)
{
//...
}
public MyClass<TResult> ContinueWith(ThreadInfo<TResult>.Parameterized arg)
public MyClass<T2> ContinueWith<T2>(ThreadInfo<T2>.Parameterized arg)
public MyClass<TResult> ContinueWith<T1>(ThreadInfo<T1>.Parameterized arg)
{
//...
}
public MyClass<TResult> ContinueWith(ThreadInfo<TResult>.Parameterized arg)
{
//...
}