Dotnet core 3.1:制作一个通用的调用方法

Dotnet core 3.1: Making one common method to call

我有一个关于如何创建以下方法的通用方法以及如何调用该通用方法的问题。我想制作一个我可以使用的通用方法。

    private async Task<bool> GetObjA()
    {
        var ObjA = await _unitOfWork.RepositoryA.CheckExists(TableField, TableFieldValue);
        if (ObjA != null)
        {
            ValidatedObjects.Add(TableName.ToLower(), ObjA);
            return true;
        }
        return false;
    }

   private async Task<bool> GetObjB()
    {
        var ObjB = await _unitOfWork.RepositoryB.CheckExists(TableField, TableFieldValue);
        if (ObjB != null)
        {
            ValidatedObjects.Add(TableName.ToLower(), ObjB);
            return true;
        }
        return false;
    }

   private async Task<bool> GetObjC()
    {
        var ObjC = await _unitOfWork.RepositoryC.CheckExists(TableField, TableFieldValue);
        if (ObjC != null)
        {
            ValidatedObjects.Add(TableName.ToLower(), ObjC);
            return true;
        }
        return false;
    }

您可以通过制作一个接收对象作为参数的通用方法来实现这一点。

这段代码应该可以完成工作:


private async Task<bool> GetObj<T>(T myObject)
{
      if (myObject != null)
      {
            ValidatedObjects.Add(TableName.ToLower(), myObject);
            return true;
      }
      return false;
}

解释:

不是在方法内部获取对象,而是将其作为通用数据类型传递给方法。这意味着您将在方法之外使用 unitOfWork,这样您就可以通用并避免每次都重复自己。

参考文献:

Generic Methods (C# Programming Guide)