entity franework数据持久化 第一章c#高级特性

1.c#委托

 //创建委托

public delegate void t(string s);

//创建方法
        public static void sss(string ss)
        {
            Console.WriteLine(ss + "买早餐");
        }
        public static void ssss(string ss)
        {
            Console.WriteLine(ss + "买鸡公煲");
        }
        static void Main(string[] args)
        {

//创建委托对象 sss为方法名,sss的返回类型和参数类型与个数要和委托类型一致
            t d = new t(sss);
            t dd = sss;

//多重委托
            dd = dd + ssss;
            dd -= sss;

//调用委托,.Invoke可以省略
            dd.Invoke("c");

        }

2.隐式类型与匿名类型

//使用隐式类型声明变量,必须赋初始值
            var s = "p";
            //显示类型
            int aa = 0;
            Console.WriteLine(s.GetType());
            Console.WriteLine(aa.GetType());
            //匿名对象 
            
          var b = new
            {
                id = 10010,
                name = "dd",
                age = 20
        };
        //属性类型和b一致,那么她们共用一个匿名类
        var c = new
        {
            Id = 10020,
             Name = "cc",
             Age = 22
        };
            Console.WriteLine(c.GetType());
            Console.WriteLine(b.GetType());

匿名方法

public delegate string t();
    public class _2
    {
        static void Main(string[] args)
        {
            t del = delegate ()
            {
                return "我是匿名方法";
            };
            string m = del();
            Console.WriteLine(m);

        }
    }

注意:匿名方法不用声明返回值类型,但是匿名方法返回值类型必须和委托返回值类型一致

2.在参数方面,参数数量,类型和修饰符必须和委托一样

    

3.扩展方法

扩展方法是静态的,所以该类也定义静态

 public static int  a(this string s)
        {
           return s.Split(new char[] {' ',',','?'},StringSplitOptions.RemoveEmptyEntries).Count();

        }
        static void Main(string[] args)
        {
            string s="How are you?";
            int count = s.a();
            Console.WriteLine(count);
            

        }

4.YIELD关键字

 public static IEnumerable<goods> getlist(List<goods> list,double price)
        {
            List<goods> goods = new List<goods>();
            foreach (var item in list)
            {
                if (item.goodspice== price)
                {
                   yield return item;
                }
            }
           

        }
        static void Main(string[] args)
        {
            List<goods> goods1 = new List<goods>()
            {
                new goods() {goosname="可乐",goodspice=9.9},
                new goods() {goosname="薯条",goodspice=4},
                new goods() {goosname="麻花",goodspice=5.9},
                new goods() {goosname="油条",goodspice=4}
            };
          IEnumerable<goods> a= getlist(goods1, 4);
            foreach(var item in a)
            {
                Console.WriteLine(item.goosname+"---"+item.goodspice);
            }

        }

5.lambda表达式

  //声明委托
    public delegate void dele(string s);
    public static void sss(string ss)
    {
        Console.WriteLine(ss + "买早餐");
    }
        static void Main(string[] args)
        {
            dele fun = new dele((a) =>
            {
                Console.WriteLine(a+"你好");
            });
            fun.Invoke("momo");
        }

//action是系统提供的委托类,是无返回值委托
            Action<string> action = new Action<string>((a) =>
            {
                Console.WriteLine(a + "你好");
            });
            action("m");

    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值