泛型作為返回型別的寫法

iDotNetSpace發表於2009-10-28

在泛型方法中,如果採用下面的方式來返回泛型型別的物件,則會報錯,說“不能進行型別轉換”

public static T GetObj (UIElement obj)
{
  return (T)obj; //或者 return obj as T
}

正確的寫法應該是這樣的:

public static T GetObj (UIElement obj)
{
  return (T)(Object)obj;
}

比如下面這個方法返回元素指定型別的“父親”:

public static T GetAncestor(DependencyObject element)
{
  while (!(element == null || element is T))
  {
           element = VisualTreeHelper.GetParent(element);
  }

  if((element != null) && (element is T))
  {
            return (T) (object) element;
  }

  return default(T);
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-617616/,如需轉載,請註明出處,否則將追究法律責任。

相關文章