qué puedo hacer esto:¿Por qué "como T" obtiene un error, pero fundición con (T) no se producirá un error?
public T GetMainContentItem<T>(string moduleKey, string itemKey)
{
return (T)GetMainContentItem(moduleKey, itemKey);
}
pero no esto:
public T GetMainContentItem<T>(string moduleKey, string itemKey)
{
return GetMainContentItem(moduleKey, itemKey) as T;
}
Se queja de que no he restringido el tipo genérico suficiente, pero entonces yo podría pensar que la regla se aplicaría a la fundición con "(T)" también.
Su respuesta es incorrecta, se puede lanzar sobre los tipos de valor, el resultado será anulable, ver este post y la respuesta de Jon Skeet: http://stackoverflow.com/questions/496096/casting-vs-using-the -as-keyword-in-the-clr – Mikhail