1、LINQ的基本概念学习笔记

目录

 1、隐式类型局部变量

2、匿名类型

3、匿名方法

4、Lambda表达式


 1、隐式类型局部变量

使用var关键字隐藏变量的数据类型。

注意点:

  1. 声明隐式变量时一定要同时初始化,否则报错
  2. 声明变量不能赋值为NULL (因为赋为NULL,编译器无法推断出这个变量的具体数据类型)
  3. 声明一个局部变量后,他仍然具有强类型。如下列代码:

       var a=10;

        a=”hello”; //这样编译器会报错,因为他本身是int类型



 class Program

    {

        static void Main(string[] args)

        {

            //隐式类型局部变量

            var age = 25;

            var username = "shaocx";

            var userList = new string[] { "tom", "tilee", "gates" };

            foreach (var item in userList)

            {

                Console.WriteLine(item);

            }



            //需要注意的问题

            //1、不能赋值为NULL

            //var product;//报错,无法将<NULL>赋予隐式类型化的变量

            //var customer = null; //报错,无法将<NULL>赋予隐式类型化的变量

            //2、隐式变量是强类型,不能改变数据类型

            //var i = 15;

            //i = "666";//报错,无法将string隐式转换为int



            Console.ReadKey();

        }

    }
  1. 2、匿名类型

     

匿名类里的属性随意定义,想定义什么就定义什么。 

static void Main(string[] args)

        {

            var stu = new { username="shaocx",age=16};

            Console.WriteLine("姓名:{0},年龄:{1}",stu.username,stu.age);

            Console.ReadKey();

        }
  1. 3、匿名方法

 

private delegate void myDelegate(string type,string name);//定义委托
        public static void myMethod(string type,string name)
        {
            Console.WriteLine(type+"输出:" + name);
        }
        static void Main(string[] args)
        {
            #region 使用委托方式

            myDelegate md = new myDelegate(myMethod);
            myDelegate md1 = myMethod;
            md("委托方法","shaocx");
            md1("委托方法","我是鬼");

            #endregion

            #region 使用匿名方法方式(其实就是简化了使用委托的操作)

            myDelegate md2 = delegate (string type,string name) { Console.WriteLine(type + "输出:" + name); };
            md2("匿名方法","张三");

            #endregion

            Console.ReadKey();
        }
  1. 4、Lambda表达式

 

 

示例:       

class Program

    {

        private delegate void myDelegate(string name);

        private delegate void myDelegate2(string name, int age);

        static void Main(string[] args)

        {

            //Lambda表达式是对匿名方法的又一次简化

            myDelegate md = name => Console.WriteLine(name);

            md("shaocx");



            //多参数的Lambda表达式

            myDelegate2 md2 = (name, age) =>

            {

                Console.WriteLine("姓名:{0},年龄:{1}", name, age);

            };

            md2("牛顿", 55);



            Console.ReadKey();

        }

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值