【问题标题】:How to call method of a generic input type class如何调用通用输入类型类的方法
【发布时间】:2019-07-15 05:39:28
【问题描述】:

我有课

    public abstract class CommonService<T,U> : IService<T> where T : NameDTO where U : IRepository
    {
      public async Task SaveData(T editObj, int Id, short TypeId)
            {
              .. implementation
            }
    }

我必须调用这个类里面的方法,所以我尝试下面的方法:

CommonService<XYZFiltersDTO, IXYZRepository> _commonService;
            await _commonService.SaveData(myObj, 23, 12);

但我在

处遇到错误

等待_commonService.SaveData(myObj, 23, 12);

“使用未分配的局部变量_commonService。”

【问题讨论】:

  • 你需要给_commonService分配一些东西。
  • 错误的哪一部分让您认为它与方法的调用有关?您正在使用_commonService。它尚未初始化
  • 请注意,这与泛型无关 - 如果您写 string text; int length = text.Length;,您会得到同样的结果
  • “也不起作用”不是错误消息。当您尝试这样做时,您收到了什么错误消息?
  • 你不能创建abstract 类的实例。看起来这是您作为新 C# 开发人员尝试理解的代码,也许您最好通过一些 C# 教程来学习?

标签: c# c#-6.0


【解决方案1】:

正如其他人所说,您不能创建抽象类的实例。您必须创建一个实现它的类。

https://docs.microsoft.com/en-us/visualstudio/ide/reference/implement-abstract-class?view=vs-2017

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 2016-08-20
    相关资源
    最近更新 更多