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
{
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
;
}
}
}
查看全文
相关阅读:
C++中break语句、continue语句和goto语句区别
面试题 01.03:URL化(C++)
面试题 01.02: 判定是否互为字符重排(C++)
面试题 01.01: 判定字符是否唯一(C++)
探索one
面试题32
面试题32
面试题32
面试题33: 二叉搜索树的后序遍历序列(C++)
用命令行执行php脚本输出乱码
原文地址:https://www.cnblogs.com/craig/p/1455651.html
最新文章
数据结构链表——JavaScript的实现
解决:myeclipse上项目名和Tomcat部署的项目名不一样的问题
sybase:SQL Exception and Warning Messages大全
sybase:JZ0SA: 已准备好的语句:没有设置输入参数,索引:54
java.math.BigDecimal cannot be cast to java.lang.String
在myeclipse上设置 SVN过滤上传的文件类型
MyEclipse新建WebService服务
mongodb 安装问题汇总
'JAVAC' 不是内部或外部命令解决方法
oracle:insert优化
热门文章
Inoproshop入门系列教程-----第4节 使用Inproshop下载程序
Inoproshop入门系列教程-----第3节 应用功能介绍
Inoproshop入门系列教程-----第2节 Inproshop软件菜单介绍
Inoproshop入门系列教程-----第1节 Inproshop的安装和使用
第11节 摆臂轴追剪
第10节 实操台卷径计算实现
第9节 卷径计算
第8节 摆杆PID
第7节 CANOPEN变频器运动控制
第6节 摆杆力矩模式设置
Copyright © 2011-2022 走看看