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 { get; set; }
public Int64 ID { get; private 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[] { 1, 2, 43 };//当然也可以写成: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>() { 1, 3, 54, 6, 78 };
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 = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
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;
}
}
}
转载于:https://www.cnblogs.com/craig/archive/2009/05/13/1455651.html
C# 3.0/3.5语法新特性示例汇总[转]相关推荐
- Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结
Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结 1.1. C# 1.0-纯粹的面向对象 1.2. C# 2.0-泛型编程新概念 1.3. ...
- java 7.0 特性_JDK7.0语法新特性
JDK7.0语法新特性 1,菱形语法(泛型实例化类型自动推断) List list = new ArrayList<>(); // <>这个真的很像菱形 2,在目前版本中,不可 ...
- c#3.0加入的一些新特性——泛型集合
c#3.0加入的一些新特性 1.泛型集合 2.隐式类型 3.自动实现属性 3.匿名方法 4.扩展方法 5.Lambda表达式 1.泛型集合 在.NET2.0中没有泛型集合定义集合用ArrayList定 ...
- mysql+8.0+新特性_MySQL 8.0备受瞩目的新特性大放送!
原标题:MySQL 8.0备受瞩目的新特性大放送! 作者介绍 杨奇龙,目前就职于有赞科技,负责数据库运维工作,熟悉MySQL性能优化.故障诊断.性能压测. MySQL于 2016-09-12正式发布8 ...
- C# 6.0语法新特性体验(二)
之前我在文章通过Roslyn体验C# 6.0的新语法中介绍了一些C# 6.0的语法特性,现在随着Visual Studio 14 CTP3的发布,又陆续可以体验一些新的特性了,这里简单的介绍一下之前没 ...
- C#3.0语法新特性集合
隐式类型局部变量 C#3.0提供了一个新的关键字var,使用该关键字,编译器会根据用于初始化局部变量的初始值推断出变量的数据类型. 示例代码: using System; using System.C ...
- Angular4.0.0正式发布,附新特性及升级指南
作者|孙薇编辑|尾尾经历了6个RC版本之后,Angular项目组终于在今天发布了新版,即 正式版 Angular 4.0.0.新版的 Angular 有哪些值得关注的点,究竟带来了哪些新特性?如何升级 ...
- .NET Core 3.0 正式公布:新特性详细解读
点击蓝字"dotNET匠人"关注我哟 加个"星标★",每日 7:15,好文必达! 作者丨Richard Lander 译者丨核子可乐 策划丨赵钰莹 近日,.NE ...
- 【JDK8语法新特性】:超全总结{lamda,stream,optional,新日期类API},JDK8对策略模式支持,可以直接贴代码运行测试。
文章目录 Java8新特性 速度快 代码更少(增加了新的语法,lamda表达式)(主要) 强大的Stream API(主要) 便于并行 最大减少空指针异常(Optional API) 提供了线程安全的 ...
最新文章
- 软件开发环境-环境信息库
- 16S+功能预测也能发Sciences:尸体降解过程中的微生物组
- linux 脚本判断一个目录不存在
- 栈的应用就进匹配_笔记
- iOS-MVVM架构优化
- [Qt入门]QMainWindow创建
- 前端电子表数字字体_爬虫:如何优雅应对字体反爬
- 操作系统 cpu调度_CPU调度| 操作系统
- Java 泛型完全解读
- 随笔记:实现HTML页面局部滚动及自定义滚动条样式
- CCW:浪潮云+智能协同云平台获评“用户首选品牌”
- 花嫁之容氏浅浅最后怎么样了_花嫁之容氏浅浅小说
- marvin java_Java开源图像处理框架Marvin介绍
- weboffice控件接收html文件,WebOffice 文档控件API
- 如何用计算机设计班牌,班牌设计
- Postman--使用
- C语言+EasyX实现数字雨
- 无线路由登不上服务器怎么办,登录不了无线路由器的管理界面怎么办?
- cmd下使用命令切换目录
- Linux配置系统网络(动态)
热门文章
- float最大值_float.h库
- java 默认数据库创建路径_无法创建数据库路径文件:/ user / hive /仓库错误
- python入门必备10个坑_适合 Python 初学者的一些技巧和坑
- linux内核远程漏洞,CVE-2019-11815:Linux内核竞争条件漏洞导致远程代码执行
- java把图片写入excel_使用POI向excel中写入图片的java代码
- ryu和mysql实现控制_openflow的初步认识及RYU控制器实践
- IDEA配置NodeJS项目遇到问题及解决
- 数字图像处理:(5)非微分算子在数字图像处理中的应用
- Halcon与QT的联合编程(2)
- 和12岁小同志搞创客开发:如何驱动LED点阵模块?