日期:2014-05-17  浏览次数:20761 次

一个wpf里面的函数,函数定义没看明白~~
private childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject
        {
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
            {
                DependencyObject child = VisualTreeHelper.GetChild(obj, i);
                if (child != null && child is childItem)
                    return (childItem)child;
                else
                {
                    childItem childOfChild = FindVisualChild<childItem>(child);
                    if (childOfChild != null)
                        return childOfChild;
                }
            }
            return null;
        }


c#不熟悉,函数后面的where是什么意思?
------最佳解决方案--------------------
这时一个泛型方法,后面的where是对于泛型参数的约束。
xxxx.FindVisualChild<childItem>(obj);
childItem是一个类型,where指定了这个类型必须继承自DependencyObject

有关知识可以看我一篇博客文章:
C# 泛型编程之泛型类、泛型方法、泛型约束
------其他解决方案--------------------
泛型!!!!
------其他解决方案--------------------
where childItem : DependencyObject
是对childItem的约束,必须继承DependencyObject
------其他解决方案--------------------
引用:
这时一个泛型方法,后面的where是对于泛型参数的约束。
xxxx.FindVisualChild<childItem>(obj);
childItem是一个类型,where指定了这个类型必须继承自DependencyObject

有关知识可以看我一篇博客文章:
C# 泛型编程之泛型类、泛型方法、泛型约束
 顶!!!
------其他解决方案--------------------
非常感谢LS朋友们的指点~~