扩展方法,对象初始化器,集合初始化器的运用

C#3.0 的新特性包括(linq,Lambda表达式,自动属性,推断类型,匿名类,扩展方法,对象初始化器,集合初始化器)今天要用的是扩展方法,对象初始化器,集合初始化器的操作
 1:可嵌套的对象初始化的器如图:
 
2:集合初始化器:
 
 
 
3:扩展方法的使用:请注意
1.在一个静态类中定义需要的扩展方法
2如果上面定义的扩展方法位于不同的命名空间,使用时记住用 using语句引用过来
3当类本身的方法与扩展方法同名时,优先类本身的方法
4扩展方法允许我们对已存在类型的行为进行扩展
5扩展方法是一种特殊的静态方法
6扩展方法的优先级低于同名的类方法
7扩展方法只在特定的命名空间内有效
8除非必须不要滥用扩展方法
 
 
下面看一个完整的代码
 
一、先建两个实体类student类和study科目成绩类
  public class Study
    {
        public int id { get; set; }
        public string  sname { get; set; }
        public string  cheng { get; set; }
    }
  public class student
    {
        public int id { get; set; }
        public string  name { get; set; }
        //study科目成绩
        public Study stud { get; set; }
    }
 
二、扩展方法的使用都要有静态的建一个扩展方法的类
 

 /// <summary>
    /// 扩展方法的使用都要有静态的
    /// </summary>
   static  class Staticinex
    {
       public static string LookStudent(this student s){
           string fly = string.Format("我是{0},我所考科目是{1},我的成绩是{2}",s.name,s.stud.sname,s.stud.cheng);
           return fly;
       }

       public static List<student> LookStudents(this List<student> s1)
       {
           foreach (var item in s1)
           {
               Console.WriteLine("我的考号是" + item.id + "我的名字叫" + item.name + "考试科目是" + item.stud.sname + "我的成绩是" + item.stud.cheng);
              
           }
           return null;
          
       }
       /// <summary>
       /// 把第一个转化成大写
       /// </summary>
       /// <param name="str"></param>
       /// <returns></returns>
       public static string  ToDa(this string str) {
           string s = str.Substring(0, 1).ToUpper() + str.Substring(1).ToLower();
           return s;
       }
    }

三、最后在main()方法中调用
 

  static void Main(string[] args)
        {
            //对象初始化器赋值加嵌套
            student stu = new student {
            id=1,
            name="fly",
            //嵌套
            stud=new Study{
         
  
sname=".net",
            cheng="98"
            }
            };
            Console.WriteLine("我是{0},我所考科目是{1},我的成绩是{2}",stu.name,stu.stud.sname,stu.stud.cheng);
            Console.WriteLine("以上是对象初始化器赋值加嵌套");
            Console.WriteLine("---------------------------------------");

            //集合初始化器赋值加嵌套
            List<student> stud = new List<student> {
                  new student{
                  id=111,
                  name="wing",
                  stud=new Study{
                  sname=".net",
                  cheng="88"
                  }
                  },
                   new student{
                  id=122,
                  name="Tom",
                  stud=new Study{
                  sname=".net",
                  cheng="68"
                  }
                  },
                   new student{
                  id=133,
                  name="YY",
                  stud=new Study{
                  sname=".net",
                  cheng="82"
                  }
                  }
            };
          
            foreach (var item in stud)
            {
                Console.WriteLine("我的考号是"+item.id+"我的名字叫"+item.name+"考试科目是"+item.stud.sname+"我的成绩是"+item.stud.cheng+"\n");
            }


            List<string> list = new List<string> {

            "hao1",
            "hao2",
            "hao3",
            "hao4",
            "hao5"
            };
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }

            List<int> list1 = new List<int> {
                    1,2,3,
                      3,5
            };
            foreach (var item in list1)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("以上是集合初始化器赋值加嵌套");
      
      Console.WriteLine("--------------------------------------");
            //调用扩展方法
            Console.WriteLine(stu.LookStudent());

            Console.WriteLine(stud.LookStudents());
         
            string hao = "weclome me!";
            Console.WriteLine(hao.ToDa());
            Console.WriteLine("以上调用扩展方法");
            Console.ReadLine();
        }

四、运行的结果如下

 

这是我自己做的,找了很久没有找到满意的所有就自己写了个简单的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值