- 博客(11)
- 收藏
- 关注
原创 C# 泛型 学习笔记(七)
CLR via C# 学习笔记(七)泛型一、允许在引用类型、值类型、接口中定义泛型方法List< T >优势:源代码保护,不需要访问List< T >的源代码类型安全比如List< DateTime > Add(String) 之后会编译报错性能好由于类型安全,不需要强制类型转换,不如List[0] 不需要强制转成DateTime与ArrayList相比 ,存引用类型差不多;存值类型List更快,因为ArrayList存储值类型也会大量装箱二、IL
2021-09-01 15:18:30
235
原创 C# 事件 学习笔记(六)
CLR via C# 学习笔记(六)事件CLR事件模式以委托为基础委托是调用回调方法的一种类型安全的方式eg:MailManage收到邮件时,会公开NewMail事件,在User1 和 User2等级对MailManage事件的关注,MailManage对象将NewMail对象,发送给已经登记的方法一、把A和B放在一起,委托A执行完,再执行B这样B就不用检测A是否完成,已经委托A了this.A += new EventHandler(B);二、定义事件public event E
2021-08-25 09:50:19
192
原创 C# 参数 学习笔记(五)
CLR via C# 学习笔记(五)常量和字段一、ref和out两者都是按照地址传递,使用后都无法改变原来参数的值。out传递时,参数清空。就是无法传递参数,传递进去会被初始化二、params关键字传递可变数量的参数void Dispaly(params Object[] objects ){遍历object --> console(objects[n].GetType())}调用:Dispaly("123", 2, new Object());结果:StringInt
2021-08-23 10:36:51
215
原创 C# 常量和字段 学习笔记(四)
CLR via C# 学习笔记(四)常量和字段一、常量常量必须在编译时确定,定义常量就是创建元数据二、字段字段修饰符:static 类型状态,而不是对象状态readonly这种字段只能有一个构造器方法中的代码写入,只调用一次,就是在对象首次创建时。volatile 标记所有引用类型、基础类型volatile并不保证线程安全性,它只保证任何时候你读取到的都是最新值个人理解: volatile 只是说这个变量在用到的时候,每次去内存中取值,而不在寄存器中取值eg:readonly标记
2021-08-19 14:17:09
165
原创 C# 类型 成员基础 学习笔记(三)
CLR via C# 学习笔记(三)类型 成员基础一、类型和成员基础常量、字段、方法实例构造器 :非static构造器,作用于非静态字段(实例对象字段)类型构造器 :static构造器,作用于静态字段(类型状态字段)操作符重载转换操作符属性、事件二、类型的可见性定义类型不显示指定可见性,C#会帮你指定为internalpublic 所有可见internal 程序集可见protected 子类可见protected internal 同一个程序集、以及程序集里的子类priv
2021-08-18 14:00:15
120
原创 C# 字符串留用 Intern与IsInterned
C# 字符串留用 Intern与IsInterned使用IsInterned时,如果参数不在线程堆上,那么就返回null,并不会创建新字符串,如下图test3为null,说明“xyz”不在线程堆上;test4为“x”,说明“x”在线程堆上有一个现象,我们把test5放在test3后面声明一个“xyz”运行后可以看到test3不为null,这说明在程序运行时,“xyz”已经在test5的参数里存到了堆上。...
2021-08-17 21:58:27
307
原创 Sql Server查询包含 /乱码/空格符无法查出数据
Sql Server查询包含乱码/空格符无法查出数据今天开发遇到了一个离谱的问题,在接口查sqlserver时,有一部分以空格结尾的列查不到,先检查是否是参数有问题:在接收ajax的参数时,出现了 ,如下图印象里在之前开发接受参数时,如果传过来的字符串最后是以空格结尾也会传回来,一下子以为自己记错了,决定还是试试一下如下图。可以看到下面两张图,结尾就算是空格结尾也不会转为 发现查不到数据的原因应该就是这个 ,本着试一试的态度,直接把sql打印出
2021-08-17 15:55:24
3843
原创 C# 基元类型 引用类型 值类型 学习笔记(二)
CLR via C# 学习笔记(二)基元类型 引用类型 值类型一、基元类型编译器能直接支持的数据类型,比如int, short, long, double等。Int32 x = 2; //x是32位值Int64 y = x; //隐式转型为64位值溢出检测check和uncheck操作符下面的代码就抛出溢出异常check{ //允许溢出的代码放在uncheck中Byte b = 100;b += 200;}二、引用类型和值类型引用类型从托管堆分配,new之后返回对象
2021-08-16 21:21:30
176
原创 C# 类型基础 学习笔记(一)
CLR via C# 学习日记(一)C#类型基础一、类型基础所有类型都由System.Object派生Equals 判断两对象是否相同对于值类型来说是比较值;对于引用类型来说是比较地址是否相同;bool Equals(Object objA, Object objB);bool Equals(Object obj);GetHashCode() 返回对象的哈希码GetType() 返回调用该方法的对象是什么类型该方法是非虚方法,目的是为了防止重写,隐瞒类型,破坏类型安全ToString
2021-08-16 16:03:36
129
原创 数据库四种范式和部分依赖,完全依赖,传递依赖
数据库范式设计数据库时,根据不同的规范要求,设计出合理的关系型数据库。而这些规范就叫做范式,越高的范式,冗余越小。一般的数据库只遵循第一范式,第二范式,第三范式就足够了。满足了这三个范式的数据库一般都是简单和结构清晰的,同时也不会发生insert,delete,update的操作异常。六个范式分别为:第一范式(1NF)第二范式(2NF)第三范式(3NF)巴斯-科德范式(BCNF)...
2019-10-28 13:59:21
14560
原创 CLR寄宿和AppDomain
CLR寄宿和AppDomain(一)CLR(Common Language Runtime 公共语言运行时):提供的核心功能:内存管理、程序集加载、安全性、异常处理、线程同步。寄宿(hosting)使任何应用程序都能利用CLR的功能,它让现有的一些程序至少能部分使用托管代码编写,还可以为程序提供通过编译来进行自定义和扩展的能力。其中允许扩展性,意味第三方DLL可能会在程序中运行,DLL可能企...
2019-10-22 22:35:20
390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅