c#糖衣代码

1 自动属性
public class Student
{
public int ID{get;set;}
}

2 隐式类型(类型推断)
关键字 var(在编译的时候已经确定变量的类型了,编译时把推断的类型替换掉var。并不是弱类型)
作用:只是方便程序员
var i=5;//int
注意:
不能作为类成员的类型
不能作为方法的参数
不能作为返回值
(只能作为局部变量的类型推断)

3 匿名类型
var p1=new {Id=1,Name="coco",Age=22};匿名类中的成员是只读的seal类型的
数组
var intArray=new []{2,3,4,5};
var atrArray=new []{"Hellp","coco"};
var objArray=new[]{new {Name="coco",Age=12},new {Name="bingbing",Age=95}};
var a=intArray[0];

4
对象与集合初始化器
Student stu=new Student(){Id=1,Name="coco",Age=99}//更方便给对象赋值
集合初始化器
List<int>num=new List<int>(){0,1,23,4};
list<student>stus=new list<student>(){new student{Id=1,Name="coco",Age=123},new student{Id=2,Name="kkk",Age=17}};

5 扩展方法(linq中用的很多)
扩展方法主要是在类中另写一个静态的方法,用户不用更改类就可以直接点出来。一般不会用到
声明扩展方法的步骤:
类必须是static,方法是static,第一个参数是扩展的对象,前面个标注的是this(this 参数类型 参数名)。
使用扩展方法必须保证扩展方法已经在当前代码中(即要有相同的命名空间)

扩展方法不属于扩展类的成员,也访问不到要扩展的类的私有变量
eg:
//定义
public static class StingExt
{
pulic static bool isEmail(this string str)
{
return Regex.IsMatch(str,@"^\[email protected]\w+\.\w+$");
}
}
//使用
string email="[email protected]"
cw{emial.IsEmail();}

时间: 2024-08-11 13:56:05

c#糖衣代码的相关文章

错误和问题解决的成本

问题描写叙述 错误 数据收集 根本原因 版本号   组件:数据修复           在一个实际成本组织中,(平均,先进先出,后进先出) 一个或更 多的下面情况可能发生: 1.导航到物料成本历史表单上的数量信息,与现有量表单的数量不匹配的记录 2. 一些物料前期已计成本的数量与前面的事务处理历史表单的数量不匹配 3. 全部的库存值报表与事务处理值报表不匹配 4. 存货层次成本更新表单的总数量与现有量数量表单不匹配(只在先进先出/后进先出) 5.这些症状的不论什么一个意味着 MMT-CQL不匹配

JVM-程序编译与代码早期(编译期)优化

早期(编译期)优化 一.Javac编译器 1.Javac的源代码与调试 Javac的源代码放在JDK_SRC_HOME/langtools/src/shares/classes/com/sun/tools/javac中,除了JDK自身的API之外,就只引用了JDK_SRC_HOME/langtools/src/shares/classes/com/sun/*里面的代码,调试环境建立起来简单方便,因为基本上不需要处理依赖关系. 编译过程大致可以分成3个过程: (1)解析与填充符号表过程 (2)插入

抹掉Scala的糖衣(14) -- Update Method

欢迎关注我的新博客地址:http://cuipengfei.me/ 在Scala中,名字叫做update的方法是有特殊作用的. 比如: 1 2 3 val scores = new scala.collection.mutable.HashMap[String, Int] scores("Bob") = 100 val bobsScore = scores("Bob") 以上三行代码,我们创建了一个可变的map来存储得分情况,然后我们记录了Bob的得分是100分,最

一个简单代码的不简单实现

前几天看有人贴了一个java代码的问题,实在有意思,今天拿出来和大家分享分享.题目是这样的:给定两个Integer类型的变量a和b,要求实现一个函数swap,交换他们的值.代码如下: ====想一想的分割线 ==== 大家用30秒钟想想怎么样实现呢? ====时间到的分割线 ==== 估摸着好多盆友一看这个题目,第一反应是:擦,这么简单的题,让我来做,是不是在侮辱我的智商!!! 最简单的实现: 这题目初看一眼,确实好简单,可能只需要10秒钟就可以完成(主要时间花在打字上): 好了,这就是实现代码

Xcode 快速开发 代码块 快捷键

Xcode的代码片段(Code Snippets)创建自定义的代码片段,当你重用这些代码片段时,会给你带来很大的方便. 常用的: 1.strong:@property (nonatomic,strong) <#Class#> *<#object#>;2.weak:@property (nonatomic,weak) <#Class#> *<#object#>;3.copy:@property (nonatomic,copy) NSString *<#s

solr分布式索引【实战一、分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例】

1 private static Properties prop = new Properties(); 2 3 private static String confFilePath = "conf" + File.separator + "config.properties";// 配置文件目录 4 static { 5 // 加载properties 6 InputStream is = null; 7 InputStreamReader isr = null;

微信支付PHP SDK —— 公众号支付代码详解

在微信支付 开发者文档页面 下载最新的 php SDK http://mch.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 这里假设你已经申请完微信支付 1. 微信后台配置  如图 我们先进行测试,所以先把测试授权目录和 测试白名单添加上.测试授权目录是你要发起微信请求的哪个文件所在的目录. 例如jsapi 发起请求一般是jsapi.php所在目录 为测试目录,测试白名单即开发人员的微信号. 正式的支付授权目录不能和测试的一样否则会报错.不填

如何上传代码到github?

如何上传代码到github? 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可: https://git-for-windows.github.io/ 1.进入Github首页,点击New repository新建一个项目  2.填写相应信息后点击create即可 Repository name: 仓库名称 Description(可选): 仓库描述介绍 Public,

自己写的代码会写了,还是太渣,复杂度什么的直接报表

原题目是这样子的,本人按照一贯的作风想得很简单 #include<iostream> using namespace std; void H(int n) { while (n > 1) { if (n % 2 == 0) //这一步把取余和除法弄混淆. { cout << n << " "; n = n / 2; } else { cout << n << " "; n = 3 * n + 1; }