代码之家  ›  专栏  ›  技术社区  ›  PassionateDeveloper

T型通用接口,其中

  •  2
  • PassionateDeveloper  · 技术社区  · 8 年前

    我尝试进入通用接口的第一步,并拥有以下接口:

    public interface ISetting<T>
    {
        T Value { get; }
    }
    

    以及这样的实现:

    public class MySetting : ISetting<DateTime> 
    { 
        DateTime Value { get; }
    }
    

    现在我的目标是,我可以在我的服务层中这样编写代码:

    public class MyService
    {
        public DateTime GetMySetting()
        {
            return MyDataLayer.GetSettings<MySetting>();
        }
    }
    

    因此,在我的数据层中,我正在努力实现我的generic和where:

    public T ReadOrAddOne<T>() where T : ISetting<????>
    {
        // My Code goes here
    }
    

    那么,如何告诉我的ISetting我正在等待哪种类型呢?

    1 回复  |  直到 8 年前
        1
  •  3
  •   Ray Krungkaew    8 年前

    您只需要定义另一个字母来表示该类型。

    public T ReadOrAddOne<T,R>() where T : ISetting<R>
    {
        return default(T);
    }