2011-12-20 25 views
1

我已经使用了以下通用添加或更新记录:如何获得C#中的泛型以返回值?

public void AddOrUpdate<T, V>(T item, V repo) 
     where T : Microsoft.WindowsAzure.StorageClient.TableServiceEntity 
     where V : IAzureTable<T> 
    { 
     try 
     { 
      repo.AddOrUpdate(item); 
     } 
     catch (Exception ex) 
     { 
      _ex.Errors.Add("", "Error when adding"); 
      throw _ex; 
     } 
    } 

我需要的是一个类似通用的,让我来检索记录,并实现以下为通用:

public Account GetAccount(string pk, string rk) 
     { 
      var account = _accountRepository.GetPkRk(pk, rk); 
      if (account == null) 
      { 
       _ex.Errors.Add("", "Account " + rk + " does not exist"); 
       throw _ex; 
      } 
      return account; 
     } 

有人可以解释我可以如何做一个泛型,返回类T的一个实例。我不熟悉如何使泛型返回值。我想我可以编写泛型,但我只是不确定如何返回值。

回答

1
public T GetClassT<T>() 
{ 
    // do your processing here 
    var someObject = DoSomeProcessHere(); 

    // ensure that your return object is of type T 
    return (T)someObject; 
}