摘要:
以下都是反射在表达式树中的应用 对象初始化 Expression.MemberInit 反射获取成员(字段 或者属性),绑定数据,然后生成 成员表达式节点 class Animal { public string Species { get; set; } public int Age; } pub
阅读全文
posted @ 2021-10-23 18:21
小林野夫
阅读(268)
推荐(0)
摘要:
函数参数默认值和指定传参 最近在编写代码时发现介绍C#参数默认值不能像PL/SQL那样直接设置default,网上也没有太多详细的资料,自己琢磨并试验后整理成果如下: C#允许在函数声明部分定义默认值 参数默认值设定后,调用时可以不用填写有默认值的参数 参数传递顺序,顺序调用在前,指定参数调用在后
阅读全文
posted @ 2021-10-21 17:55
小林野夫
阅读(4714)
推荐(0)
摘要:
创建表达式树节点的两种方式1、用expression的静态方法MakeBinary|MakeUnary(ExpressionType,参数)的方式创建表达式树节点: BinaryExpression greaterThan = Expression.MakeBinary(ExpressionType
阅读全文
posted @ 2021-10-21 14:15
小林野夫
阅读(201)
推荐(0)
摘要:
常量 1、值常量 (p)=>100+88+p ParameterExpression par = Expression.Parameter(typeof(int), "p"); BinaryExpression binaryexp = Expression.Add(Expression.Consta
阅读全文
posted @ 2021-10-20 12:28
小林野夫
阅读(349)
推荐(0)
摘要:
.NET 3.5中新增的表达式树(Expression Tree)特性,第一次在.NET平台中引入了“逻辑即数据”的概念。也就是说,我们可以在代码里使用高级语言的形式编写一段逻辑,但是这段逻辑最终会被保存为数据。正因为如此,我们可以使用各种不同的方法对它进行处理。例如,您可以将其转化为一个SQL查询
阅读全文
posted @ 2021-10-19 23:17
小林野夫
阅读(1068)
推荐(0)
摘要:
Expression相当于工厂,这个工厂有各式各样的模型(函数),用来生成各种零部件(节点类型),最后组装成表达式树。 Expressions这个命名空间有各种个容器用陈放生产出来的零部件。 Expression 非常接近于类型Emit ,Emit就是直接 使用IL指令进行编程,它的最主要用途就是编
阅读全文
posted @ 2021-10-19 22:44
小林野夫
阅读(321)
推荐(0)
摘要:
注解 抽象类 Expression 提供用于为表达式树建模的类层次结构的根。 此命名空间中派生自的类 Expression (例如 MemberExpression 和 ParameterExpression )用于表示表达式树中的节点。 Expression类包含 static (Shared V
阅读全文
posted @ 2021-10-19 19:42
小林野夫
阅读(278)
推荐(0)
摘要:
使用 abstract 关键字可以创建不完整且必须在派生类中实现的类和 class 成员。 使用 sealed 关键字可以防止继承以前标记为 virtual 的类或某些类成员。 abstract修饰符可以用于修饰类、方法、属性、索引器(indexer)和事件。 1、抽象类 抽象类具有以下功能:抽象类
阅读全文
posted @ 2021-10-19 18:56
小林野夫
阅读(429)
推荐(0)
摘要:
// // 摘要: // 描述表达式目录树的节点的节点类型。 public enum ExpressionType { // // 摘要: // 加法运算,如 a + b,针对数值操作数,不进行溢出检查。 Add = 0, // // 摘要: // 加法运算,如 (a + b),针对数值操作数,进行
阅读全文
posted @ 2021-10-19 17:47
小林野夫
阅读(201)
推荐(0)
摘要:
总结:中小型 项目 就放心用吧! 不过从技术 储备的角度来说,建议 看看entity framework LINQ to SQL和Entity Framework各有所长,LINQ to SQL是一个轻量级的ORM框架,旨在为Microsoft SQL Server数据库提供快速的应用程序开发,其优
阅读全文
posted @ 2021-10-19 16:27
小林野夫
阅读(74)
推荐(0)
摘要:
1. 引言 本文是一套面向C# programmer 和C# developer 进行开发所应遵循的开发规范。 按照此规范来开发C#程序可带来以下益处: · 代码的编写保持一致性, · 提高代码的可读性和可维护性, · 在团队开发一个项目的情况下,程序员之间可代码共享 · 易于代码的回顾, 本规范是
阅读全文
posted @ 2021-10-19 15:23
小林野夫
阅读(489)
推荐(0)
摘要:
命名空间 C#10 新功能 命名空间格式:声明所有后续声明都是已声明的命名空间的成员: //C#10 命名空间的新写法,这种方式一个文件只能有一个命名空间。 //命名空间后面只能是类名、枚举、结构 namespace MyNamespace; public class P { } public cl
阅读全文
posted @ 2021-10-19 15:05
小林野夫
阅读(1555)
推荐(0)
摘要:
在.NET 4.0的运行时进行动态编程时,我们引入了一个新功能:动态语言运行时。可以这样理解,CLR的目的是为静态类型的编程语言提供一个统一的框架或编程模型,而DLR便是在.NET平台上为动态语言提供了统一的编程模型。CLR本身已经有一些支持动态编程能力,如反射,Emit等等。不过在.NET上实现动
阅读全文
posted @ 2021-10-18 23:56
小林野夫
阅读(105)
推荐(0)
摘要:
一、看图区别编程语言 一般来讲,看第一个图就够了 这图是引用的,有错误,Python是强类型,但是图片中却归为弱类型了。 业界堆静态和动态的区分达到共识。 但是堆强类型和弱类型语言还未达成共识。我个人(小林野夫)对比较认同以下观点: 如今将**“对隐式类型转换的容忍度”**作为强弱类型的分类标准,已
阅读全文
posted @ 2021-10-18 23:44
小林野夫
阅读(414)
推荐(0)
摘要:
进行学习到表达树了,用动Tpye了。所以整理了以下他们区别和用法 总得来说他们都是为了获取某个实例具体引用的数据类型System.Type。1、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,x.GetType(),其中x为变量名2、typeof(x)中的x
阅读全文
posted @ 2021-10-18 19:58
小林野夫
阅读(836)
推荐(0)
摘要:
引用 using 。。。表达式 i=5、i>5 语句:int i=5; 快( block ):{ }
阅读全文
posted @ 2021-10-18 17:53
小林野夫
阅读(60)
推荐(0)
摘要:
一、字面量定义 在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数、浮点数以及字符串;而有很多也对布尔类型和字符类型的值也支持字面量表示;还有一些甚至对枚举类型的元素以及像数组、记录和对象等复
阅读全文
posted @ 2021-10-18 16:29
小林野夫
阅读(1116)
推荐(0)
摘要:
C# 静态常量和动态常量的区别 C#中有两种常量类型分别为readonly(运行时常量)与const(编译时常量),readonly是变量的常量,const是字面量的常量本文将就这两种类型的不同特性进行比较并说明各自的适用场景。 工作原理 readonly为运行时常量,程序运行时进行赋值,赋值完成后
阅读全文
posted @ 2021-10-18 15:54
小林野夫
阅读(241)
推荐(0)
摘要:
官方链接:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/ 以下内容是网上找的,结合官方内容写出的 C#中表达式(Expression)的定义 An e
阅读全文
posted @ 2021-10-18 14:45
小林野夫
阅读(1826)
推荐(0)
摘要:
1、下载 ExpressionTreeVisualizer https://github.com/zspitz/ExpressionTreeVisualizer/releases , 解压后把相应dll文件拷贝相应的目录 2、拷贝到以下路径之中的任何一个。 sualStudioInstallPath
阅读全文
posted @ 2021-10-17 22:46
小林野夫
阅读(464)
推荐(0)
摘要:
大学有一门课程《软件工程》,研究如何组织和管理软件项目。 说实话,这门课不适合本科生,因为学生可能体会不到,课程到底要解决什么问题。只有亲身参与过大项目的开发,经历过大团队,才能感受为什么软件工程很重要,又很难做对。 软件开发有一个难题,叫做"扩展"(scaling),即怎样服务更多的用户。 你有1
阅读全文
posted @ 2021-10-17 15:47
小林野夫
阅读(113)
推荐(0)
摘要:
Object Relational Mapping:对象编程-关系数据库 映射,直接用编程的逻辑操作数据库,.net 和编译器(依照ORM)完成 把编程语句转换成成 sql语句,然后再数据库中执行 并反汇结果。而程序员不在关系数据库层面的东西。 一、概述 面向对象编程和关系型数据库,都是目前最流行的
阅读全文
posted @ 2021-10-17 15:35
小林野夫
阅读(270)
推荐(0)
摘要:
原文链接 https://docs.microsoft.com/zh-cn/dotnet/csharp/delegate-class c# 包含哪些关键字? 关键字是预定义的保留标识符,对编译器有特殊意义。 除非前面有 @ 前缀,否则不能在程序中用作标识符。 例如,@if 是有效标识符,而 if 则
阅读全文
posted @ 2021-10-15 12:54
小林野夫
阅读(215)
推荐(0)
摘要:
字符串比较时候用到 CompareOptions CompareOptionsz [ComVisible(true)] public enum StringComparison { /// <summary> /// 使用区分区域性的排序规则对字符串进行排序和当前区域性对字符串进行比较(根据当前的语
阅读全文
posted @ 2021-10-13 18:59
小林野夫
阅读(73)
推荐(0)
摘要:
感觉 最近学习学疯了,突然对以前熟悉的东西感到陌生。然后又回头重新挖掘一下 什么是相等性呢?以前一直用== 默认是值相等,从未去考虑,是地址相等还值相等。今天就详细的研究一下。 .net 平台提供了4中相等性比较符。ReferenceEquals、静态Equals、实例eEquals、==(“ceq
阅读全文
posted @ 2021-10-13 15:00
小林野夫
阅读(412)
推荐(1)
摘要:
每个对象都有一个明确定义的生命周期,除了“正在使用”的正常状态之外,还有两个重要的阶段: 构造阶段: 对象最初进行实例化的时期。这个初始化过程称为构造阶段,由构造函数完成。 析构阶段:在删除一个对象时,常常需要执行一些清理工作,例如,释放内存,这由析构函数完成。 还未写完,。。。。。。。。。。。
阅读全文
posted @ 2021-10-11 23:38
小林野夫
阅读(180)
推荐(0)
摘要:
init是什么意思? init就 modreq([System.Runtime]System.Runtime.CompilerServices.IsExternalInit) 类型的缩写 modreq= Modified Request:修改请求 IsExternalInit=is Externa
阅读全文
posted @ 2021-10-11 23:05
小林野夫
阅读(3756)
推荐(0)
摘要:
readonly 关键字是一个可在四个上下文中使用的修饰符: 在字段声明中,readonly 指示只能在声明期间或在同一个类的构造函数中向字段赋值。 可以在字段声明和构造函数中多次分配和重新分配只读字段。 构造函数退出后,不能分配 readonly 字段。 此规则对于值类型和引用类型具有不同的含义:
阅读全文
posted @ 2021-10-11 01:19
小林野夫
阅读(270)
推荐(0)
摘要:
计算机组成原理 1、为什么计算的补数(补码)=反码+1? 二进制的减法可以转化成加法运算。利用mod=|负数|+补数 ,计算机的mod =2字长 ,计算的字长是固定的,计算机加法结果超过字长的部分会舍弃,留下部分就是余数。 例如 :一个字长为8的 计算机,表示数字范围是0~28-1 ,一共28种(m
阅读全文
posted @ 2021-10-10 22:37
小林野夫
阅读(388)
推荐(0)
摘要:
命名空间:System.Collections.Generic 构造函数:public KeyValuePair (TKey key, TValue value); 属性:只读属性 Key ,只读属性 Value 方法:public void Deconstruct (out TKey key, o
阅读全文
posted @ 2021-10-10 14:31
小林野夫
阅读(2486)
推荐(0)
摘要:
原文地址:https://www.cnblogs.com/arxive/p/5795423.html 本文对原文进行了部分修改 说明 必须包含名空间System.Collection.Generic Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值) 键必须是唯一的,而值不
阅读全文
posted @ 2021-10-10 11:40
小林野夫
阅读(950)
推荐(0)
摘要:
目录 使用简单集合集合的类型 System.Collections.Generic 类 System.Collections.Concurrent 类 System.Collections 类 System.Collections.ObjectModel(命名空间)-》 ReadOnlyCollec
阅读全文
posted @ 2021-10-10 09:23
小林野夫
阅读(104)
推荐(0)
摘要:
.Net 新一代编译器 Roslyn 会带来怎样的影响? Roslyn是微软创建的一个.NET编译器平台,该项目于2014年4月3日开源。 最初 C# 语言的编译器是用 C++ 编写的,后来微软推出了一个新的用 C# 自身编写的编译器:Roslyn,它属于自举编译器。 .NET Compiler P
阅读全文
posted @ 2021-10-09 22:35
小林野夫
阅读(1179)
推荐(1)
摘要:
使用弱引用的准则 仅在必要时使用长弱引用,因为在终结后对象的状态不可预知。 避免对小对象使用弱引用,因为指针本身可能和对象一样大,或者比对象还大。 避免将弱引用作为内存管理问题的自动解决方案, 而应开发一个有效的缓存策略来处理应用程序的对象。 什么时候用到弱引用: 1、事件中 2、
阅读全文
posted @ 2021-10-09 17:05
小林野夫
阅读(162)
推荐(0)
摘要:
1、事件中的技巧 (1)在事件发送者中,用delegate{}初始化事件。这样就不用每次在使用事件的时候判读事件是否为空了。 delegate { }可以赋值给任何类型的委托。这个功能匿名方法特有的,是lambda表达式无法取代的。 public event EventHandler<FileFou
阅读全文
posted @ 2021-10-09 16:42
小林野夫
阅读(159)
推荐(1)
摘要:
克隆方法是原型设计模式中必须使用的方式,它将返回一个与当前对象数据一致的对象。正如其名,犹如一个模子雕刻而出。克隆类型分为两种:浅克隆、深克隆。 浅复制就是仅复制类中的值类型成员 深复制就是复制类中的值类型成员和引用类型的成员。 浅复制一般由object.MemberwiseClone自动实现,由于
阅读全文
posted @ 2021-10-09 15:40
小林野夫
阅读(598)
推荐(0)
摘要:
内容来源:MSN:https://docs.microsoft.com/zh-cn/dotnet/csharp/event-pattern 操作符详解(上) https://www.youtube.com/watch?v=1DhDOJz_S98 操作符详解(中) https://www.youtub
阅读全文
posted @ 2021-10-08 20:31
小林野夫
阅读(5589)
推荐(1)
摘要:
接口设计方式 自顶向下 (如图所示),自底向上。 接口成员: 事件 public interface IDrawingObject { event EventHandler ShapeChanged; } 在类中实现接口事件在类中声明事件,然后在相应区域中调用它 namespace Implemen
阅读全文
posted @ 2021-10-08 20:08
小林野夫
阅读(94)
推荐(0)
摘要:
软件开发方式一共有三种:SDK方式、MFC开发方式、托管环境的开发都是基于消息的开发 SDK方式 原装api的调用SDK方式使用C语言和Windows应用程序编程接口(Windows API)来开发Windows应用程序,Windows API里面都是C函数,类似于C语言的标准函数库,只是Windo
阅读全文
posted @ 2021-10-04 10:24
小林野夫
阅读(3309)
推荐(0)
摘要:
一、消息概述 众人周知,window系统是一个消息驱动的系统, windows操作系统本身有自己的消息队列称做系统消息队列(操作系统队列),消息循环,它捕捉键盘,鼠标的动作生成消息,并将这个消息传给应用程序的消息队列称作线程消息队列(应用程序队列)。 余下的工作有应用程序处理消息, windows
阅读全文
posted @ 2021-10-03 23:33
小林野夫
阅读(1089)
推荐(0)