zoukankan      html  css  js  c++  java
  • C#给类的添加扩展方法

    今天学习了给类添加扩展方法,这里记录下。我这记性不好,过不了两天就给忘记了。

    下面的例子是给控件ListView类添加三个方法:

    1.  AddItemInofStudent  作用是用结构体数据添加新行的数据

    2。EditItemInofStudent  用结构体中的数据修改指定的行的数据

    3。GetItemToStudent  获得指定行的数据,并填充到结构体中

    下面就来实现这三个方法,

    首先要创建一个静态类MyListView,扩展方法也要是静态的,在方法的第一个参数要写this ListView list,

    表示是哪个类的扩展方法,

    示例如下:

    1。结构体

    public struct Student
        {
            public int ID;
            public string Name;
            public string Sex;
            public int Age;
            public string Tel;
    
        }

    2。添加的三个静态扩展方法

    static class MyListView
        {
           
            public static void AddItemInofStudent(this ListView list,Student stu)
            {
                ListViewItem item = new ListViewItem();
                item.Text = stu.ID.ToString();
                item.SubItems.Add(stu.Name);
                item.SubItems.Add(stu.Sex);
                item.SubItems.Add(stu.Age.ToString());
                item.SubItems.Add(stu.Tel);
    
                list.Items.Add(item);
            }
            static public void EditItemInofStudent(this ListView list,int nItem, Student stu)
            {
                list.Items[nItem].SubItems[0].Text = stu.ID.ToString();
                list.Items[nItem].SubItems[1].Text = stu.Name;
                list.Items[nItem].SubItems[2].Text = stu.Sex;
                list.Items[nItem].SubItems[3].Text = stu.Age.ToString();
                list.Items[nItem].SubItems[4].Text = stu.Tel;
            }
            static public Student GetItemToStudent(this ListView list,int nItem)
            {
                Student stu = new Student();
                stu.ID = int.Parse(list.Items[nItem].SubItems[0].Text);
                stu.Name = list.Items[nItem].SubItems[1].Text;
                stu.Sex = list.Items[nItem].SubItems[2].Text;
                stu.Age = int.Parse(list.Items[nItem].SubItems[3].Text);
                stu.Tel = list.Items[nItem].SubItems[4].Text;
    
                return stu;
            }
        }

    调用:就和ListView类的成员方法一样的调用就行了。

            //实例结构体对像
                Student stu = new Student
                {
                    ID = 11,
                    Name = "张三",
                    Sex = "",
                    Age = 44,
                    Tel = "13200789"
                };
            
          
            //给ListView控件添加新行 listView1.AddItemInofStudent(stu); stu.ID
    = 13;
            //修改指定行的数据 listView1.EditItemInofStudent(
    0,stu);         //获得指定行的数据 Student stu2 = listView1.GetItemToStudent(0);
           

            stu2.ID = 101;
            listView1.AddItemInofStudent(stu2);

    效果图:

    总结了一下,用继承的方式的话,在程序中就要用自己继承的类来操作数据了。

    签名:GreenLeaf1976
  • 相关阅读:
    PHP realpath() 函数
    PHP getcwd() 函数
    移动加权平均&全月平均
    Nginx禁止访问某个目录
    foreach ($array as $key=>$value)
    php中$_SERVER变量的意义及用法说明
    [JS代码]如何判断ipad或者iphone是否为横屏或者竖屏 portrait或者landscape
    分享10个实用的超绚CSS3按钮设计
    分享三款非常实用的免费信息图
    分享200个免费的倒影效果移动设备及网站图标下载
  • 原文地址:https://www.cnblogs.com/greenleaf1976/p/14961549.html
Copyright © 2011-2022 走看看