私人C#笔记

coust 定义常量

string是密封类,所以不能继承它

namespace默认是按照文件夹的结构命名的,如(System.文件夹.子文件夹),而且namespace是可以手动改的

ArrayLists可以放进去所有类型的变量,可以把它看作动态数组

add

remove,removeAt

clear

list.Contains();     判断元素是否存在

List<T>

HashSet<T>     只保留一份重复的数据

Dictionary<T,T>

Stopwatch类是秒表

Random     随机数

Path          路径处理

Combine(第一部分,第二部分)     //合并路径,自动处理路径的斜杠

File

File.WriteAllText(路径,内容)//写入文件,如果文件不存在则创建,如果文件夹不存在则抛出异常

Directory

StringBuilder

Append(),AppendLine()

可空类型

在值类型名后加上个问号(?)可以声明可空类型的变量

int? i=null;

i.HasValue()     判断是否为null

FTP,HTTP处理

WebClient

FtpWebRequest

时间间隔

TimeSpan

声音处理

SoundPlayer

委托中的匿名方法

delegate()

{

//匿名方法

}

Lambda表达式

TestDelegate td = (s1,s2) => {

Console.WriteLine(s1+s2);

}

扩展方法

扩展静态类的方法,使字面量可以直接调用类似String类的ToLower(),ToUpper()方法

如:str.IsEmail()

无参扩展方法:自己写个静态类,在方法的第1个参数前加上this关键字

有参的扩展方法,第一个参数就是要调用的对象,以后的参数依次是扩展方法的参数

Linq

类型推断

var关键字声明变量,但和JS中不同,JS是弱类型的语言,可以为变量赋任何类型的值,

C#中一旦为变量赋了一种类型的值,就不能为其赋其余类型的值

匿名类型

var p = new { Name="Sky",Age=18 };

p是匿名类型的对象

LINQ的简便方法

from i in values

where i<0

orderby i descending

select i;//select在最后

//select new Person{Age=10;}     可以创建对象

GC.Collect();     //手动垃圾回收

WeakReference 弱引用,监视一个变量是否被回收

string 和 StringBulder的区别

StringBuilder不会产生大量的临时字符串

"abc"=="123"     //判断值

object.RefernceEquals(s1,s2)     //判断对象的引用是否相同

字符串拘留池,会重用字符串对象,

但每次new出一个字符串,就肯定是创建了一个新的对象

 

C#中使用指针

在项目的属性中选中"允许不安全的代码",并且在方法前要加上"unsefe"关键字才可以使用指针

 

运算符重载

public bool operator ==(Person p1,Person p2)

结构体是值类型

 

浅度复制和深度复制

 

ICloneable接口提供一个Clone()方法可以进行深度复制,但实现代码需要自己完成

new一个对象把各个属性都挨个复制

 

可以使用对象的MemberwiseClone()方法来进行浅度复制,

它返回一个Object对象,需要自己转换成所需 的类型

 

数字与字符串相加,以数字开头,就返回与第一个数字相连的和再与余下的字符串相加

,以字符串头,就以数字的ToString()相加

 

字符串与一个非字符串对象相加,得到的是它的ToString*(

 

sealed 作为类的修饰符是密封类,作为方法的修饰符,不允许子类override

 

Stream

File,FileInfo,Directory,DirectoryInfo

FileStream,GZipStream

StreamReader,StreamWriter

 

泛型委托,系统定义的委托Func<T>

 

泛型约束

//构造函数约束

function<T>() where T:new() //约束T必须有无参的构造函数

//继承约束

function<T>() where T:Base

default(T)     返回这个类型的默认值,如果是值类型就返回null

 

程序集

反射Assembly类

 

Type类是对类的更高级的抽象,所有类都是它的实例

//没有对象的时候通过类来获得类的描述

Type t=typeof(Person)

//GetType()获得对象的类的类型描述

asbls[0]

Type t2=dog.GetType();

 

Activator.CreateInstance(type);     //创建type类的实例,要求必须有无参的构造函数

 

typeof(Class) 返回Class的Type描述

 

 

 

类的标记(Attribute)

[Serialize]     标记类为可序列化

[DisplayName("显示的类名")]

时间: 2024-10-16 15:15:26

私人C#笔记的相关文章

Java私人学习笔记——第3章 程序流程控制

3.1 分支结构 3.1.1 if语句结构 if( ){ }else{ } 3.1.2 条件运算符 condition ? expr1 : expr2 3.1.3 switch语句结构 switch( ){ case value1: ...           [break;] case value2: ...           [break;] case value3: ...           [break;] } 3.2 循环结构 3.2.1 while循环结构 while(boole

Java私人学习笔记——第4章 类和对象基础

4.1 面向对象基础 4.1.2 面向对象的基本特征 1.封装性     2.继承性     3.多态性 4.2 Java类和对象 4.2.1 类的定义 类的定义包括类声明和类体的定义: 1.类声明 [public][abstract | final]class ClassName[extends SuperClass][implements InterfaceNameList]{ //成员变量声明 //成员方法声明 } 抽象类不能实例化,final最终类不能被继承: 4.2.2 对象的使用 引

Java私人学习笔记——第2章 数据类型和运算符

2.2 数据类型 2.2.1 Java数据类型 2.3 常用运算符 Java提供了一组运算符丰富的操纵变量.我们可以把所有的Java操作符为以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其它运算符 算术运算符: 算术运算符用于在数学表达式中,他们是在代数中使用的方法相同.下表列出了算术运算符: 假设整型变量A=10和变量B=20,则: 算术运算实例 运算符 描述 实例 + Addition - Adds values on either side of the opera

Java私人学习笔记——第1章 Java语言综述

1.1 Java起源与发展 1.1.3 Java语言的特点 1.简单   2.面向对象   3.分布性   4.解释型   5.平台独立   6.可移植 7.健壮性   8.安全性   9.高性能   10多线程   11.动态性 1.2 面向对象编程概述 1.2.2 OOP(面向对象程序设计)的优势 1.易维护   2.可重用   3.可扩展 1.3 简单的Java程序 1.3.2 编译过程 编译器——>源代码 .java——>Java编辑器——>字节码——>Java调试器——&

SQL SERVER 2012/ 2014 分页,用 OFFSET,FETCH NEXT改写ROW_NUMBER的用法

写法: 假装有个表Shop,其中有一列ShopName,取100000到100050条数据. ROW_NUMBER 的写法 SELECT * FROM (SELECT ShopName , ROW_NUMBER() OVER(ORDER BY ShopName) as R FROM Shop) t WHERE R>100000 AND R<=100050 OFFSET,FETCH 的写法 SELECT ShopName from Shop ORDER BY ShopName OFFSET 10

Linux学习私人笔记-压缩文件命令

常用的压缩命令有: .zip  .gz  .bz2  .tar.gz  .tar.bz2 .zip格式在linux和Windows中可以互用: zip 压缩文件名 原文件名 :压缩文件. zip -r  压缩目录名 原目录名 :压缩目录. unzip 压缩文件名 :解压文件/目录. gzip 原缩文件名 :压缩文件,文件格式自动为.gz格式,并且原文件消失. gzip -r 原目录名 :压缩目录,目录格式还是源格式,但目录中的文件都被压缩为.gz格式. gzip -d 压缩文件名 :解压文件.或

Linux学习私人笔记-账号管理

Linux账号管理与权限 1>用户账号信息主要在/etc/passwd 和 /etc/shadow 两个文件中, 打开(cat /etc/passwd)passwd文件可以看到此图 共有7个字段用:隔开 账号名称:密码:UID:GID:用户信息说明:用户的主文件夹:Shell 密码用X代替,为了保密. 打开( cat etc/shadow)/etc/shadow文件可以看到此图 共有9个字段用:隔开 账号名称:密码:最近密码更动的日期:密码不可被更动的天数:密码需要重新改动的天数:密码需要更改期

Linux学习私人笔记-目录和文件的基本命令

ls :查看文件与目录 cd :切换目录 pwd  :显示当前目录 mkdir :创建目录 rmkdir :删除一个空目录 rm -rf  :删除目录并删除目录中的所有文件 echo  :显示,打印 mv 源文件路径 移动后文件路径  :移动文件/目录 cp  源文件路径 复制到文件的路径 :复制文件 cp  -r 源文件路径 复制到文件的路径 :复制目录 常用查看文件内容: cat :从第一行开始显示文件内容 tac :从最后一行行开始显示文件内容,倒序显示. nl :显示的时候顺便输出行号

60、Docker 学习笔记(CentOS 7.1)

基本概念 Docker 包括三个基本概念 镜像(Image) 容器(Container) 仓库(Repository)理解了这三个概念,就理解了 Docker 的整个生命周期. Docker 镜像 Docker 镜像就是一个只读的模板.例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序.镜像可以用来创建 Docker 容器.Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好