品级码生成树的代码

2019-05-03 23:38栏目:编程程序

namespace 实例级别和类级别的static_构造函数_字段属性的简单介绍
{
    public class B
    {
        public static void a() { }

        public B(int a)//构造函数无返回值,与类名一致.可以无参。
        {             //int a 是形参
        }
        public B()  //无参构造函数
        {
        }

        //public B();//必须声明主体
    }

    public static class A
    {
        public static void abc()//公共的静态方法
        {
        }

        //public void ABC();//不能再静态类中声明实例成员

        ///// <summary>
        ///// 这是错误的
        ///// </summary>
        //public A(){}//静态类不能有实例构造函数
    }

    class Program
    {
        static void Main(string[] args)
        {
            B b = new B(1);//实例级别不用static定义//这是将实参数字1传到int a 形参
            B b1 = new B();

            A.abc();        //  类级别用static
            Console.ReadKey();
        }
    }

    /***************************************************************/
    class C
    {
        private string name;//定义字段
        //定义属性
        public string Name
        {
            get { return name; }//读取
            set { name = value; }//写入
        }

        //把上面的复制到了方法里,结果有错误
        //字段和属性在类内,不在方法内
        public void Cc()
        {
            // private string name;//定义字段
            ////定义属性
            //public string Name
            //{
            //    get { return name; }//读取
            //    set { name = value; }//写入
            //}
        }
    }

}

图片 1图片 2    /**//// <summary>
图片 3    /// TreeView控件工具包
图片 4    /// </summary>
图片 5    public static class TreeViewControlUtil
图片 6图片 7    图片 8{
图片 9图片 10        /**//// <summary>
图片 11        /// 创设一颗品级树的点子
图片 12        /// <example>
图片 13        /// 调用方法:
图片 14        /// <code>
图片 15        /// TreeControlUtil.BuildTree<TestNode>(treeView1.Nodes[0],
图片 16        /// new TestNode[] {
图片 17        ///    new TestNode("003","TomInfo"),
图片 18        ///    new TestNode("003001","Name"),
图片 19        ///    new TestNode("003002","Age"),
图片 20        ///    new TestNode("003003","Sex"),
图片 21        ///    new TestNode("004","JaneInfo"),
图片 22        /// },
图片 23        /// "Key", "Value", 3);
图片 24        /// </code>
图片 25        /// <code>
图片 26        /// public class TestNode
图片 27        /// {
图片 28        ///     public TestNode(System.String Key, System.String Value)
图片 29        ///     {
图片 30        ///     this.Key = Key;
图片 31        ///     this.Value = Value;
图片 32        ///     }
图片 33        /// 
图片 34        ///     System.String key = System.String.Empty;
图片 35        ///     public System.String Key
图片 36        ///     {
图片 37        ///     get { return key; }
图片 38        ///     set { key = value.Trim(); }
图片 39        ///     }
图片 40        ///     System.String value = System.String.Empty;
图片 41        ///     public System.String Value
图片 42        ///     {
图片 43        ///     get { return value; }
图片 44        ///     set { this.value = value.Trim(); }
图片 45        ///     }
图片 46        /// }
图片 47        /// </code>
图片 48        /// </example>
图片 49        /// </summary>
图片 50        /// <typeparam name="T">来源数据的品种</typeparam>
图片 51        /// <param name="RootNode">根节点</param>
图片 52        /// <param name="NodeData">来源数据数组</param>
图片 53        /// <param name="CodeProperty">数据在树上的标记属性</param>
图片 54        /// <param name="TextProperty">数据在树上的文字属性</param>
图片 55        /// <param name="Length">标志等级长度</param>
图片 56        public static void BuildTree<T>(
图片 57            System.Windows.Forms.TreeNode RootNode,
图片 58            T[] NodeData,
图片 59            System.String CodeProperty,
图片 60            System.String TextProperty,
图片 61            System.Int32 Length
图片 62            )
图片 63图片 64        图片 65{
图片 66
图片 67            //有效判断
图片 68            if (NodeData == null &&
图片 69                NodeData.Length <= 0 &&
图片 70                RootNode == null)
图片 71                return;
图片 72
图片 73            //临时表
图片 74            System.Data.DataTable dt
图片 75                = new System.Data.DataTable();
图片 76
图片 77            dt.Columns.Add(new System.Data.DataColumn("Key", typeof(String)));
图片 78            dt.Columns.Add(new System.Data.DataColumn("Value", typeof(String)));
图片 79
图片 80            System.Reflection.PropertyInfo piKey
图片 81                = typeof(T).GetProperty(CodeProperty);
图片 82            System.Reflection.PropertyInfo piValue
图片 83                = typeof(T).GetProperty(TextProperty);
图片 84
图片 85            foreach (T Data in NodeData)
图片 86图片 87            图片 88{
图片 89                System.Object KeyObject = piKey.GetValue(Data, null);
图片 90                System.Object ValueObject = piValue.GetValue(Data, null);
图片 91                if (KeyObject != null &&
图片 92                    ValueObject != null &&
图片 93                    KeyObject.ToString().Trim().Length > 0 &&
图片 94                    ValueObject.ToString().Trim().Length > 0)
图片 95图片 96                图片 97{
图片 98                    try
图片 99图片 100                    图片 101{
图片 102                        System.Data.DataRow dr = dt.NewRow();
图片 103                        dr["Key"] = KeyObject.ToString().Trim();
图片 104                        dr["Value"] = ValueObject.ToString().Trim();
图片 105                        dt.Rows.Add(dr);
图片 106                    }
图片 107                    catch
图片 108图片 109                    图片 110{ }
图片 111                }
图片 112            }
图片 113
图片 114            foreach (System.Data.DataRow dr in dt.Select(System.String.Empty, "Key ASC"))
图片 115图片 116            图片 117{
图片 118                System.Windows.Forms.TreeNode[] tnL = null;
图片 119                try
图片 120图片 121                图片 122{
图片 123                    tnL =
图片 124                        RootNode.Nodes.Find(dr["Key"].ToString().Substring(0, dr["Key"].ToString().Length - Length), true);
图片 125                }
图片 126                catch
图片 127图片 128                图片 129{ }
图片 130                if (tnL != null && tnL.Length > 0)
图片 131图片 132                图片 133{
图片 134                    tnL[0].Nodes.Add(dr["Key"].ToString(), dr["Value"].ToString());
图片 135                }
图片 136                else
图片 137图片 138                图片 139{
图片 140                    RootNode.Nodes.Add(dr["Key"].ToString(), dr["Value"].ToString());
图片 141                }
图片 142            }
图片 143
图片 144            RootNode.ExpandAll();
图片 145
图片 146        }
图片 147    }

版权声明:本文由ca888发布于编程程序,转载请注明出处:品级码生成树的代码