我有一个关于如何使以下方法的公共方法以及如何调用公共方法的问题。我想做一个通用的方法,我可以使用。
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在方法之外,这样你就可以是通用的,避免每次都重复自己。
引用:
泛型方法(c#编程指南)