2011-12-20 61 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; 
}