【读书笔记】《深入理解c#》(1)

来源:互联网 发布:java excel 合并 编辑:程序博客网 时间:2024/06/05 17:42

写在前面:

大学的c#选修课没有讲语法课,直接asp.net 之类的,我觉得不太好。所以我最近在看这本书,深入学习。

在博文我会放一些书中的代码和对于我来说没见过或者很生疏的东西。

就当是批注之类的。

------------------------------------------------------

第一章  

1.Readonly(c#4)

例子:
using System.Collection.Generic;
public class Project{
readonly string name;    //外界不可以设置name值
public string Name{get{return name;}
}
}

知识点:
readonly ->const   对象构造函数运行完后,readonly修饰的值就不能再更改

他们的区别:详细在 http://www.cnblogs.com/csharp4/archive/2010/07/10/1774794.html

constreadonly1.static类型,类访问对象访问2.声明初始化         构造函数里初始化
3.只能在声明时,赋值一次在构造时可以赋值多次4.类中可以当局部变量不可以5.适用于类似于int之类的变量类型可以适用复杂类型datetime------------------------------------------------------------------------------------------------------------------------

2.lambda

例子:

(1)list<T> 按照T里面的某个元素进行排序输出 c#3 

List<Project>products=Product.GetSampleProducts();
foreach (Product product in Products.OrderBy(p=>p.name))//存在一个拓展方法
{

}

(2)查询 价格高于10 c#3

List<Project>products=Product.GetSampleProducts();
foreach (Product product in Products.Where(p=>p.price>10))//存在一个拓展方法
{

}

(3)查询未知的值

List<Project>products=Product.GetSampleProducts();
foreach (Product product in Products.Where(p=>p.price==null))//存在一个拓展方法
{

}

知识点:
https://baike.baidu.com/item/Lambda%E8%A1%A8%E8%BE%BE%E5%BC%8F

=>   叫做   goes to

似乎跟委托函数有关,委托函数还没学过(……),后面会仔细讲委托函数的,

先总结一些方法


列表.orderby(p=>p.类中变量)  按照类中的变量排序的列表

对象 .where(p=>关于类中变量的bool关系式)   符合关系式元素组成的列表


*注意不能直接用,作者说会在第十章讲

--------------------------------------------------------------------------------------------------------------------------


3.linq


知识点:



总结:

1.初始化
var query = fromitem in 列表/集合       //var  没有指定类型,query是一个集合
                   join value in 列表2
                   on item.id equals  value.id
where  条件
groupitem by item.Lengthinto lengthGroups   //按照属性分类
orderby lengthGroups.Key   //排序
select lengthGroups;   //一个集合
2.应用
foreach (var thing in query)
{
}
-----------------------------------------------------------------------------------------------

4.com

用com技术导入excel


var app=new Application{Visible=false;}  //创建新的应用
Workbook workbook=app.Workbook.Add();   //增加新的工作簿
Worksheet worksheet=app.ActiveSheet;//新的表格
int row=1;
foreach(var product in products)
{
    worksheet.cell[row,1].Value=product.name;
   worksheet.cell[row,2].Value=product.price;
   row++;
}   //录入名字和价格

workbook.SaveAs(Filename:" .xls",FileFormat:XlFileFormat.xlWorkboolNormal);//存取
app.Application.Quit();