您可以在泛型类声明中使用相同的泛型类型MULTIPLE TIMES吗?

时间:2017-07-21 21:04:49

标签: c# .net

我想拥有一个只返回传入类型的身份转换器。我有一个界面:

 public interface IDataTranslator<TFrom, TTo>  {
        TTo Translate(TFrom fromObj);
    }

我希望我的课程就像身份翻译一样,即只返回参数,这样的事情(当然这不会编译):

public class IdentityDataTranslator<T, T> : IDataTranslator<T, T> {
        public T Translate(T fromObj) {
            return fromObj;
        }
}

似乎无法在这里获得正确的语法......

1 个答案:

答案 0 :(得分:5)

只是不要在实现类上定义第二个类型的参数;你已经拥有了你需要的东西:

public class IdentityDataTranslator<T> : IDataTranslator<T, T> {
        public T Translate(T fromObj) {
            return fromObj;
        }
}