zoukankan      html  css  js  c++  java
  • C# 3.0/3.5语法新特性示例汇总[转]

    //作者:杨卫国
    //时间:2008年2月21日
    //说明:C#语法新特型示例
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace C3
    {
        
    class Program
        
    {
            
    //新特性1:简单属性,无需另外多写一个私有字段,比较适合于定义实体类
            public class GsunisMan
            
    {
                
    //传统写法,属性必须有一个私有字段
                private int age;
                
    public int Age
                
    {
                    
    get
                    
    {
                        
    return age;
                    }

                    
    set
                    
    {
                        age 
    = value;
                    }

                }


                
    //3.5写法,直接定义即可;
                public string Name getset; }
                
    public Int64 ID getprivate set; }
            }


            
    static void Main(string[] args)
            
    {
                
    //新特性2:隐式类型,隐式类型化本地变量,但必须赋初值,编译器通过初值推导出变量类型
                var i = 10//相当于 int i=10;
                var s = "甘肃紫光软件研发部"//s为String类型; 
                var arrNums = new int[] 3,6,9 };


                
    //新特性3:初始化数组的简写方式:new[],可以回忆一下1.1、2.0怎么定义?
                int[] arrNums2 = new[] 1243 };//当然也可以写成:var arrNums2 = new[] { 1, 2, 43 };


                
    /**////新特性4:匿名类型,在2.0中有个匿名方法,很容易混淆
                var book1 = new { BookName = "《紫光人2007纪念版》", BookNumber = 150,BookPublisher = "甘肃紫光企划部" };
                MessageBox.Show(
    string.Format("书名:{0},数量:{1},出版:{2}" ,book1.BookName , book1.BookNumber , book1.BookPublisher));

                
    /**////新特性5:对象构造者(实例化时,构造函数后面跟大括号,可直接初始化对象属性),在1.1、2.0中必须先定义,然后初始化
                GsunisMan aMan = new GsunisMan() {Name = "杨卫国", Age = 100 };
                MessageBox.Show(
    string.Format("编号:{0},姓名:{1},年龄:{2}", aMan.ID,aMan.Name,aMan.Age));

                
    /**////新特性6:集合构造者特性。允许List<>等自定义集合像数组一样用大括号赋初值,在以前只有数组才可以的
                List<int> listNums = new List<int>() 1354678 };
                MessageBox.Show(listNums.Count.ToString());

                
    //新特性7.2,请首先看看下面的新特性7.1;
                string str = "123";
                
    bool isNum = str.IsAllNumber();
                MessageBox.Show(isNum.ToString());

                
    //新特性8:Linq,作用就不多说了,用法太多,自己找资料看;
                
    //从一个集合中找出所有年龄大于55岁的人;
                List<GsunisMan> men=new List<GsunisMan>();            
                men.Add(
    new GsunisMan{Name="刘备",Age=65});
                men.Add(
    new GsunisMan { Name = "关羽", Age =60 });
                men.Add(
    new GsunisMan { Name = "张飞", Age = 50 });
                var man
    = from m in men where m.Age>55 select m; //使用Linq,前面几行在准备数据,感觉有些像Sql语句,呵呵
                MessageBox.Show(man.First<GsunisMan>().Name);     //在此仅显示第一个人姓名

                
    //新特性9:Lambda表达式"=>",一个简单的例子,用法太多,自己找资料看;
                int[] numbers = 5413986720 };
                
    int oddNumbers = numbers.Count(n => n % 2 == 1);    //找出奇数的个数
                MessageBox.Show(oddNumbers.ToString());
               
            }


           
        }

        
    static public class ExpandClass
        
    {
            
    //新特性7.1:扩展方法。可在类的外部扩展已有的类,如下是扩展string类,为String类增加一个IsAllNumber方法
            
    //!!!此特性在.NET 2.0下不可用!!!
            public static bool IsAllNumber(this string str)
            
    {
                
    foreach (var ch in str)
                
    {
                    
    if (!char.IsNumber(ch))
                    
    {
                        
    return false;
                    }

                }

                
    return true;
            }

           
        }

       
    }

  • 相关阅读:
    MyEclipse配置输出控制台信息至文本文件里
    IOS开发证书显示“此证书的签发者无效”解决方法
    leetcode之Find All Numbers Disappeared in an Array
    自己定义控件三部曲视图篇(二)——FlowLayout自适应容器实现
    浅谈BloomFilter【上】基本概念和实现原理
    mybatis 常用的jabcType与javaType对应
    springboot WebMvcConfigurerAdapter替代
    动态insert mybatis与ibatis
    动态set mybatis与ibatis的写法
    springboot 配置mybatis打印sql
  • 原文地址:https://www.cnblogs.com/craig/p/1455651.html
Copyright © 2011-2022 走看看