当前位置: 首页 > 编程日记 > 正文

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
ExpandedBlockStart.gifContractedBlock.gif
{
    
class Program
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
//新特性1:简单属性,无需另外多写一个私有字段,比较适合于定义实体类
        public class GsunisMan
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
//传统写法,属性必须有一个私有字段
            private int age;
            
public int Age
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
get
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    
return age;
                }

                
set
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    age 
= value;
                }

            }


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


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


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


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

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

ExpandedSubBlockStart.gifContractedSubBlock.gif            
/**//**//**////新特性6:集合构造者特性。允许List<>等自定义集合像数组一样用大括号赋初值,在以前只有数组才可以的
ExpandedSubBlockStart.gifContractedSubBlock.gif            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>();            
ExpandedSubBlockStart.gifContractedSubBlock.gif            men.Add(
new GsunisMan{Name="刘备",Age=65});
ExpandedSubBlockStart.gifContractedSubBlock.gif            men.Add(
new GsunisMan { Name = "关羽", Age =60 });
ExpandedSubBlockStart.gifContractedSubBlock.gif            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表达式"=>",一个简单的例子,用法太多,自己找资料看;
ExpandedSubBlockStart.gifContractedSubBlock.gif
            int[] numbers = 5413986720 };
            
int oddNumbers = numbers.Count(n => n % 2 == 1);    //找出奇数的个数
            MessageBox.Show(oddNumbers.ToString());
           
        }


       
    }

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

            }

            
return true;
        }

       
    }

   
}

转载于:https://www.cnblogs.com/craig/archive/2009/05/13/1455651.html

相关文章:

Matlab编程与数据类型 -- 循环控制语句之二:while/end

本微信图文详细介绍了Matlab中while/end循环控制语句。

Centos6,7默认启动模式的更改

有时候我们想以为图形页面启动&#xff0c;启动后直接到图形页面&#xff0c;但是有时候也想启动后直接进入文本页面&#xff0c;我们只需要修改init即可&#xff1b; Centos6启动模式配置文件路径&#xff1a;/etc/inittab Centos7启动模式配置文件路径&#xff1a;/usr/lib/s…

python中计数_Python中的统计计数

关闭。此问题不符合堆栈溢出准则。它当前不接受答案。想改善这个问题吗&#xff1f;更新问题&#xff0c;使其成为Stack Overflow的主题。6年前关闭。我有一组五个字母A..E。我想将它们分成3个一组&#xff0c;不重复字母&#xff0c;但是对于从哪里开始我一无所知。解决方案假…

angular2 学习笔记 ( Rxjs, Promise, Async/Await 的区别 )

Promise 是 ES 6 Async/Await 是 ES 7 Rxjs 是一个 js 库 在使用 angular 时&#xff0c;你会经常看见这 3 个东西. 它们都和异步编程有关&#xff0c;有些情况下你会觉得用它们其中任何一个效果都一样. 但又觉得好像哪里不太对.... 这篇就来说说&#xff0c;我在开发时的应用方…

【转】Flex Application 初始化顺序

转自&#xff1a;http://www.jexchen.com 大家都知道&#xff0c;我们在编写Flex应用程序时&#xff0c;通常是以<mx:Application>标签作为开头&#xff0c;实际上&#xff0c;Flex应用程序在启动运行的时候并不是直接从Application开始运行&#xff0c;在这之前还有一部…

Matlab编程与数据类型 -- 分支条件选择语句if/end

本微信图文详细介绍了Matlab中if/end分支条件选择语句。

插槽 查看硬盘状态_摄影路上的“全能”伴侣 | LaCie DJI Copilot 移动硬盘

照片的安全是摄影人不得不考虑的问题&#xff0c;尤其是长时间外出拍摄时&#xff0c;一旦出现意外&#xff0c;比如存储卡损坏或丢失&#xff0c;那么千辛万苦拍摄的照片将付之东流&#xff0c;造成无法挽回的损失。虽然意外发生的概率并不高&#xff0c;但是为了保险起见&…

【转载】C语言变量详解

原链接&#xff1a;http://gaga.yo2.cn/articles/detailed-c-language-variables-review.html 刚做题时发现全局变量会自动初始化&#xff0c;如int型则自动初始化为0&#xff0c;double则初始化为0.000000....。而局部变量如果没有初始化的话&#xff0c;初值为一随机数。于是…

Matlab编程与数据类型 -- 多分支条件选择语句if/elseif/…/else/end

本微信图文详细介绍了Matlab中if/elseif/…/else/end多分支条件选择语句。

图解c/c++多级指针与“多维”数组

2019独角兽企业重金招聘Python工程师标准>>> 前言 指针与数组是C/C编程中非常重要的元素&#xff0c;同时也是较难以理解的。其中&#xff0c;多级指针与“多维”数组更是让很多人云里雾里&#xff0c;其实&#xff0c;只要掌握一定的方法&#xff0c;理解多级指针和…

信科c语言实验程序修改题_豆瓣评分 9.3,史上最好的 C 语言著作,竟然翻车了.........

上周&#xff0c;在小编的各种努力下(省略一万字)&#xff0c;Kindle 官方终于答应给我一个广告位了。虽然只是开机屏&#xff0c;但我还是笑出了猪叫&#xff0c;毕竟上一次有这待遇还是 2018 年时的《算法图解》。所以错过了上次&#xff0c;这次我一定要亲眼见证这个时刻。我…

Nodejs Express dockerfile最佳实践

少啰嗦&#xff0c;先看代码 package.json {"name": "xxx","version": "0.0.0","private": true,"scripts": {"start": "node ./bin/www","forever": "node_modules/forever/…

Matlab编程与数据类型 -- 开关语句switch/end

本微信图文详细介绍了Matlab中switch/end开关语句。

安装ATi显卡驱动后增加的鼠标右键菜单的清理

一般最直接的方法是&#xff1a;一般位于注册表的&#xff1a;删除注册表HKEY_CLASSES_ROOT\Directory \Background\shellex\ContextMenuHandlers\ACE下 ab默认{5E2121EE-0300-11D4-8D3B-444553540000}办法一&#xff1a;刚才有朋友询问了ATi显卡在安装CATALYST Control Center…

15crmo焊接后多长时间探伤_15CrMo十五铬钼属于合金钢?、下面来解释一下

15CrMo十五铬钼属于合金钢​&#xff0c;主要用于石油、石化、高压锅炉等&#xff0c;专门用途的无缝管有锅炉用无缝管、地质用无缝钢管及石油用无缝管等多种。​一、15CrMo化学成分&#xff1a;C:0.12-0.18 Mn&#xff1a;0.40-0.70 Si&#xff1a;0.17-0.37 Cr&#xff1a;0.…

VTL-vm模板的变量用法

加载foot模块页 #parse("foot.vm") #foreach($item in $tables) #set($strEnd $item.Length - 1) #set($sheetName $item.Substring(0, $strEnd)) <option value"$item">$sheetName</option> #end $strEnd也可以看做一个字符串来操作 $it…

百度云磁盘CDS、对象存储BOS技术深度解析

在BAT中&#xff0c;百度在公有云也有很多技术创新。比如2013年引起广泛关注的ARM存储服务器就是一个很好的例子。最近两年&#xff0c;百度云开始发力&#xff0c;其云存储体系有诸多创新之处。目前百度云存储形成了以块存储、对象存储、文件存储为核心&#xff0c;VPN/专线、…

Matlab编程与数据类型 -- 出错处理语句try/catch/end

本微信图文详细介绍了Matlab中try/catch/end出错处理语句。

linux设置nexus开机自启动_在linux中使用nexus搭建maven私服

首先介绍下为什么要搭建maven私服&#xff0c;简单点说就是就是把项目工程中的Jar包放在一个服务器上&#xff0c;每次Jar包的修改都能去私服上面Down到本地。可以对整个项目组的人形成一个统一的管理。2、下载完之后就是这个了&#xff1a;我这个是目前最新的版本了&#xff0…

Lintcode42 Maximum Subarray II solution 题解

【题目描述】Given an array of integers, find two non-overlapping subarrays which have the largest sum.The number in each subarray should be contiguous.Return the largest sum.Notice:The subarray should contain at least one number给定一个整数数组&#xff0c;…

const用法详解

面向对象是C的重要特性. 但是c在c的基础上新增加的几点优化也是很耀眼的 就const直接可以取代c中的#define 以下几点很重要,学不好后果也也很严重 const 1. 限定符声明变量只能被读 const int i5; int j0; ... ij; //非法&#xff0c;导致编译错误 ji; //合法 2. 必…

Matlab编程与数据类型 -- continue、break和return语句

本微信图文详细介绍了Matlab中的continue、break和return语句。

mysql 修复_修复崩溃的Mysql

在mysql的配置文件my.cnf里找到 [mysqld]字段下&#xff0c;添加 innodb_force_recovery 1如果innodb_force_recovery 1不生效&#xff0c;则可尝试2——6几个数字然后重启mysql&#xff0c;重启成功。然后使用mysqldump或 pma 导出数据&#xff0c;执行修复操作等。修复完成…

window.open(url?param=+paramvalue) 服务端 乱码问题解决

window.open("url?param"paramvalue)传递参数出现乱码&#xff0c;在客房端显示是正常的&#xff0c;可是到服务端就是乱码。 1. 利用一个js在客户端转码的函数&#xff0c;escape(str);但是传到服务端仍然是乱码&#xff0c;所以必须在服务端进行解码。 2. 服务端执…

Matlab编程与数据类型 -- 数据类型概述

本微信图文详细介绍了Matlab中的数据类型&#xff0c;数值型和逻辑型举例介绍&#xff0c;其它类型在相应图文进行介绍。

初识mysql数据字段属性_初识mysql

# 经典sql语句 创建数据库- CREATE DATABASE database_name; 删除数据库- DROP DATABASE database_name; 创建备份数据库- USE masterEXEC sp_addupdevice disk,testBack ,c:\xxx\xxx.dat 开始备份- BACKUP DATABASE pubs TO testBack;--- 创建表- 创建新表 create table tab_n…

ceph存储引擎bluestore解析

原文链接&#xff1a;http://www.sysnote.org/2016/08/19/ceph-bluestore/ ceph后端支持多种存储引擎&#xff0c;以插件式的方式来进行管理使用&#xff0c;目前支持filestore&#xff0c;kvstore&#xff0c;memstore以及最新的bluestore&#xff0c;目前默认使用的filestor…

Matlab编程与数据类型 -- 字符型数组

本微信图文详细介绍了Matlab中的字符串类型。

最近想做个音乐共享的软件

准备分如下几部分&#xff1a; 1.配置文件xml读写 2.播放器部分&#xff1a;开始准备用mediaplay做&#xff0c;发现有个开源的播放器&#xff0c;可以考虑 3.网络部分&#xff1a;主要是种子搜索和更新 准备召唤有兴趣的达人一起开发转载于:https://www.cnblogs.com/donneymin…

精通mysql_《深入精通Mysql(五)》实战:Mysql实现主从复制

深入精通Mysql系列其他文章推荐&#xff1a;一、前言随着应用业务数据不断的增大&#xff0c;应用的响应速度不断下降&#xff0c;在检测过程中我们不难发现大多数的请求都是查询操作。此时&#xff0c;我们可以将数据库扩展成主从复制模式&#xff0c;将读操作和写操作分离开来…