【问题标题】:c# interface return type type (not a mistake)c#接口返回类型type(不是错)
【发布时间】:2016-11-17 00:48:47
【问题描述】:

我得到了这样的东西:

Interface IClass
{
    (something) returnClass();
}

Class Breaker: IClass
{
    Public GIS.Breaker returnClass()
    {
        return new GIS.Breaker();
    }
}

Class Conductor: IClass
{
    Public GIS.Conductor returnClass()
    {
        return new GIS.Conductor();
    }
}

gis.breaker 和 gis.conductor 都构建在使用 dll 文件导入的类中......

现在我不知道如何处理接口……我需要它返回一个类型……不是字符串……不是双精度……而是一般的类型

怎么做?

【问题讨论】:

  • 嗯,object?或者也许让你的界面通用?你希望有人如何使用它? (请注意,如果您的示例代码使用正确的 .NET 命名约定和适当的声明大小写,例如 public 而不是 Public,这将有所帮助。)
  • 对不起代码...我在电话上...不是在电脑上...请解释你的答案....我想使类型 dznamic ....它可以工作?
  • 嗯,也许吧。当然,您需要更改实现中的返回类型。但是,在你无法做好的情况下不要问问题。等到您在 PC 上,您可以在其中提供合适的上下文等。您的问题目前还不清楚,因为我们不知道您的界面将如何使用。
  • 我通常会...但我没时间了:(而且最重要的是...没有互联网...
  • 那是一个糟糕的提问时间。您没有时间提出一个糟糕的问题。

标签: c# types interface return


【解决方案1】:

Breaker 和 Conductor 必须实现一些通用接口,或者您可以将 IClass 设为通用。

interface IClass<T>
{
    T ReturnClass();
}

class Breaker: IClass<GIS.Breaker>
{
    public GIS.Breaker ReturnClass()
    {
        return new GIS.Breaker();
    }
}

class Conductor: IClass<GIS.Conductor>
{
    public GIS.Conductor ReturnClass()
    {
        return new GIS.Conductor();
    }
}

但我认为将实例构建器和对象结合起来是个坏主意。

【讨论】:

    猜你喜欢
    • 2021-02-06
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 2021-03-21
    • 2021-09-29
    相关资源
    最近更新 更多