我在我的項目中使用泛型屬性,但我不知道,是否有任何缺點使用它們,請告訴我一個場景,它們有一個缺點?我的代碼如下。通用屬性的缺點?
public class GenericResult<T>
{
public T Data { get; set; }
public bool IsSuccess { get; set; }
public string Message { get; set; }
}
public GenericResult<int> AddCategory(TCategory tCategory)
{
GenericResult<int> result = new GenericResult<int>();
//business logic validation,dont make sense,only example :)
if (tCategory.Name.Lenght > 100)
{
result.IsSuccess = false;
result.Message = "Category Name length is too long";
result.Data = 0;
}
//handle .net runtime error//may be database is not aviable.
try
{
result.Data = this.catalogRepository.AddCategory(tCategory);
result.IsSuccess = true;
}
catch (Exception ex)
{
result.Data = 0;
result.IsSuccess = false;
result.Message = ex.Message;
}
return result;
}
public GenericResult<IEnumerable<TCategory>> GetCategoryHierarchy(TCategory parentCategory)
{
GenericResult<IEnumerable<TCategory>> result = new GenericResult<IEnumerable<TCategory>>();
try
{
IEnumerable<TCategory> allCategories = catalogRepository.GetAllCategories();
result.Data = GetCategoryHierarchy(allCategories, parentCategory);
result.IsSuccess = true;
}
catch (Exception ex)
{
result.IsSuccess = false;
result.Data = null;
result.Message = ex.Message;
}
return result;
}
如果AddCategory失敗了,你爲什麼要返回一個實例?這通常被認爲是不好的做法。返回null使外部清晰可見某些失敗。 – 2011-05-07 07:28:06
同意馬里奧,但拋出一個異常可能會更具表現力,以顯示每個人出現問題! – renatoargh 2011-05-07 07:35:46
'null'不會給你留言。他回來的是一個'MayBe'的自制版本,這是其他語言的良好模式。 –
CodesInChaos
2011-05-07 07:37:17