10 2021 档案
摘要:添加全局程序集缓存 Global Assembly Cache Tool (Gacutil.exe) 操作环境windows10+vs2019 cmd.exe位置在 C:\Windows\System32目录下, 第一步、以管理员的身份运行cmd.exe,然后输入以下命令进入gacutil.exe所
阅读全文
摘要:原文地址:https://blog.alswl.com/2011/01/gac/ GAC GAC是什么?是用来干嘛的?GAC的全称叫做全局程序集缓存,通俗的理解就是存放各种.net平台下面需要使用的dll的地方。GAC的具体目录在windows/ assembly。 喜欢使用破解软件的朋友可能会经常
阅读全文
摘要:NET core 添加了新的nuget包,部署出现Could not load file or assembly 这个坑,今天整了一天,我添加了Microsoft.AspNetCore.Mvc.Versioning包,结果发布到服务器,我复制了dll过去出现了一直找不到加载不成功的问题 Startu
阅读全文
摘要:.net 程序集的组成: 程序集由元数据、清单、il 、资源 .net程序集名称 强名称程序集有一个完全限定的名称,由程序集的名称、区域性、公钥、版本号以及(可选)处理器体系结构组成。 使用 FullName 属性来获取已加载程序集的完全限定名称,该名称通常称为显示名称。 运行时使用此名称信息来定位
阅读全文
摘要:打开记事本,输入下面代码,然后把文件后缀改为.snippet 。然后通过vs2019 工具》代码段管理导入。 <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/Visual
阅读全文
摘要:微软官方教程:https://docs.microsoft.com/zh-cn/dotnet/framework/reflection-and-codedom/viewing-type-information 元編程(英語:Metaprogramming),又譯超編程,是指某类计算机程序的编写,这类
阅读全文
摘要:特性应用 取得枚举类型的注释 平时开发时,经常会用到枚举类型及其相关判断,而有时我们想显示枚举类型的注释,怎么办?下面用特性来解决这个问题。 namespace AttributeDemo.CustomAttributes { public class RemarkAttribute : Attri
阅读全文
摘要:msdn:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/attributes/creating-custom-attributes 目录: Attribute与Property 的翻译区别Attri
阅读全文
摘要:相同点 两者都有:manifest、metadata、IL 不同点 1、assembly 有main程序函数。module只能附属于程序集,程序集可以拥有多个。 2、metadata的差异 程序集特有的部分:无论是DLl或EXE都有自生程序集描述的部分,而模块没有。这个包含程序集版本 公钥 等信息。
阅读全文
摘要:如何用CSC.exe来编译Visual C#的代码文件 Visual C#是微软公司推出的新一代程序开发语言,Visual C#是微软公司.Net FrameWork框架中的一个重要的组成部分,也是微软公司向程序员极力推荐一个新的程序开发平台。和以往的开发语言相比较,他有更强大功能,更高的稳定性和更
阅读全文
摘要:.NET Core 程序集(模块)还包含描述程序集本身的元数据,我们称之为清单。清单记录了当前程序集正常运行所需的所有外部程序集、程序集的版本号、版权信息、模块 、资源(图片 xml等)等。与类型元数据一样,生成程序集清单也是由编译器的工作。 同样地,还是以上面 Calculator 类所在项目为例
阅读全文
摘要:本文是为了学习程序集而整理的网上资料,主要包括两个部分,概念和使用,前部分讲怎样理解程序集,后部分讲述怎样使用的细节。 程序集与托管模块的概念 "程序集与托管代码块"(摘自Himage的blog),希望大家看了此篇文章后对程序集的概念清楚一点 如果你正在开发面向DotNet平台的应用程序,那么你肯定
阅读全文
摘要:元数据是指“描述资料的资料”。它被用来概述资料的基础信息,以简化查找过程与方便使用[6]。 创建资料的方法 资料的用途 创建的时间与日期 资料的创建者或作者 资料被创建在电脑网络的何处 用作标准 文件大小 例如 图像:一个数字图像文件可能会包括描述图片大小、色彩深度、图片分辨率、图片创建时间、快门速
阅读全文
摘要:因为 .NET Core 的控制台应用默认是生成 dll 文件,而没有对应的 exe 文件。如下图所示,是在VS中编译后生成的结果 图中看到的TestVisualizer.exe 只是一个快捷方式, 用ilspy是无法加载这个exe文件,就可以证明它不是程序集了 要执行TestVisualizer.
阅读全文
摘要:public static class CodeTimer { public static void Initialize() { Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High; Thread.Curren
阅读全文
摘要:前言 为了让C#、Visual Basic等.NET编程语言能具备动态编程语言的特性,.NET 4.0引入了一个“DLR(Dynamic Language Runtime:动态语言运行时)”(图 3)。 DLR运行于CLR之上,提供了一个动态语言的运行环境,从而允许Python、Ruby等动态语言编
阅读全文
摘要:前言(Preamble) 在理解多态之前先理解设计原则(Solid)中里氏替换原则 里氏替换原则(Liskov Substitution Principle):派生类(子类)对象能够替换其基类(超类)对象被使用。通俗一点的理解就是“子类是父类”,举个例子,“男人是人,人不一定是男人”,当需要一个父类
阅读全文
摘要:编译时 应用:const、运算符重载、函数重载、类型 工作内容:编译时类型检查(赋值检测)、语法分析、词法分析 静态多态:特色多态(重载、运算符重载) call调用虚方法的情况 1、call:可调用 静态方法、实例方法、虚方法。call假定该变量不为null 2、call常用于调用值类型的方法或密封
阅读全文
摘要:微软近日开源了一个新平台——Try .NET,该平台可以让开发者在线上编写并运行 .NET 代码。微软介绍,Try .NET 是一个可嵌入的代码运行器,不仅可以直接在线上对自己或者他人的代码进行编辑、测试与运行,还可以将代码以片段的形式嵌入到博客或者文档中,以支持在线和离线的交互式文档。 官网链接:
阅读全文
摘要:一、动态类型其实是动态编译的一种形式。在.net4.0上添加新的动态类型dynamic,对于动态类型,就是在运行时才会确定的类型。 1.dynamic关键字的使用 1)使用var可以定义本地变量,该变量的实际数据类型取决于编译时,是在初次分配时确定的,在初次分配后,将拥有一个强类型的变量,任何不相容
阅读全文
摘要:恢复内容开始 一、操作符概览 1、概念 操作符(Operator)也称“运算符” 操作数:是用来操作数据的,被操作符操作的数据称为操作数(Operand) 2、C#中的操作符 注: 优先级:从上往下优先级递减 同级情况下: 一般情况下,从左到右 赋值操作符顺序最晚,顺序从右向左 二、操作符的本质 1
阅读全文
摘要:typeof 运算符也能用于公开的泛型类型。具有不止一个类型参数的类型的规范中必须有适当数量的逗号。不能重载 typeof 运算符。 is 可以检测和父类是否兼容,typeof责不能 public class Animal { } public class Giraffe : Animal { }
阅读全文
摘要:以下都是反射在表达式树中的应用 对象初始化 Expression.MemberInit 反射获取成员(字段 或者属性),绑定数据,然后生成 成员表达式节点 class Animal { public string Species { get; set; } public int Age; } pub
阅读全文
摘要:函数参数默认值和指定传参 最近在编写代码时发现介绍C#参数默认值不能像PL/SQL那样直接设置default,网上也没有太多详细的资料,自己琢磨并试验后整理成果如下: C#允许在函数声明部分定义默认值 参数默认值设定后,调用时可以不用填写有默认值的参数 参数传递顺序,顺序调用在前,指定参数调用在后
阅读全文
摘要:创建表达式树节点的两种方式1、用expression的静态方法MakeBinary|MakeUnary(ExpressionType,参数)的方式创建表达式树节点: BinaryExpression greaterThan = Expression.MakeBinary(ExpressionType
阅读全文
摘要:常量 1、值常量 (p)=>100+88+p ParameterExpression par = Expression.Parameter(typeof(int), "p"); BinaryExpression binaryexp = Expression.Add(Expression.Consta
阅读全文
摘要:.NET 3.5中新增的表达式树(Expression Tree)特性,第一次在.NET平台中引入了“逻辑即数据”的概念。也就是说,我们可以在代码里使用高级语言的形式编写一段逻辑,但是这段逻辑最终会被保存为数据。正因为如此,我们可以使用各种不同的方法对它进行处理。例如,您可以将其转化为一个SQL查询
阅读全文
摘要:Expression相当于工厂,这个工厂有各式各样的模型(函数),用来生成各种零部件(节点类型),最后组装成表达式树。 Expressions这个命名空间有各种个容器用陈放生产出来的零部件。 Expression 非常接近于类型Emit ,Emit就是直接 使用IL指令进行编程,它的最主要用途就是编
阅读全文
摘要:注解 抽象类 Expression 提供用于为表达式树建模的类层次结构的根。 此命名空间中派生自的类 Expression (例如 MemberExpression 和 ParameterExpression )用于表示表达式树中的节点。 Expression类包含 static (Shared V
阅读全文
摘要:使用 abstract 关键字可以创建不完整且必须在派生类中实现的类和 class 成员。 使用 sealed 关键字可以防止继承以前标记为 virtual 的类或某些类成员。 abstract修饰符可以用于修饰类、方法、属性、索引器(indexer)和事件。 1、抽象类 抽象类具有以下功能:抽象类
阅读全文
摘要:// // 摘要: // 描述表达式目录树的节点的节点类型。 public enum ExpressionType { // // 摘要: // 加法运算,如 a + b,针对数值操作数,不进行溢出检查。 Add = 0, // // 摘要: // 加法运算,如 (a + b),针对数值操作数,进行
阅读全文
摘要:总结:中小型 项目 就放心用吧! 不过从技术 储备的角度来说,建议 看看entity framework LINQ to SQL和Entity Framework各有所长,LINQ to SQL是一个轻量级的ORM框架,旨在为Microsoft SQL Server数据库提供快速的应用程序开发,其优
阅读全文
摘要:1. 引言 本文是一套面向C# programmer 和C# developer 进行开发所应遵循的开发规范。 按照此规范来开发C#程序可带来以下益处: · 代码的编写保持一致性, · 提高代码的可读性和可维护性, · 在团队开发一个项目的情况下,程序员之间可代码共享 · 易于代码的回顾, 本规范是
阅读全文
摘要:命名空间 C#10 新功能 命名空间格式:声明所有后续声明都是已声明的命名空间的成员: //C#10 命名空间的新写法,这种方式一个文件只能有一个命名空间。 //命名空间后面只能是类名、枚举、结构 namespace MyNamespace; public class P { } public cl
阅读全文
摘要:在.NET 4.0的运行时进行动态编程时,我们引入了一个新功能:动态语言运行时。可以这样理解,CLR的目的是为静态类型的编程语言提供一个统一的框架或编程模型,而DLR便是在.NET平台上为动态语言提供了统一的编程模型。CLR本身已经有一些支持动态编程能力,如反射,Emit等等。不过在.NET上实现动
阅读全文
摘要:一、看图区别编程语言 一般来讲,看第一个图就够了 这图是引用的,有错误,Python是强类型,但是图片中却归为弱类型了。 业界堆静态和动态的区分达到共识。 但是堆强类型和弱类型语言还未达成共识。我个人(小林野夫)对比较认同以下观点: 如今将**“对隐式类型转换的容忍度”**作为强弱类型的分类标准,已
阅读全文
只有注册用户登录后才能阅读该文。
摘要:进行学习到表达树了,用动Tpye了。所以整理了以下他们区别和用法 总得来说他们都是为了获取某个实例具体引用的数据类型System.Type。1、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,x.GetType(),其中x为变量名2、typeof(x)中的x
阅读全文
摘要:引用 using 。。。表达式 i=5、i>5 语句:int i=5; 快( block ):{ }
阅读全文
摘要:一、字面量定义 在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数、浮点数以及字符串;而有很多也对布尔类型和字符类型的值也支持字面量表示;还有一些甚至对枚举类型的元素以及像数组、记录和对象等复
阅读全文
摘要:C# 静态常量和动态常量的区别 C#中有两种常量类型分别为readonly(运行时常量)与const(编译时常量),readonly是变量的常量,const是字面量的常量本文将就这两种类型的不同特性进行比较并说明各自的适用场景。 工作原理 readonly为运行时常量,程序运行时进行赋值,赋值完成后
阅读全文
摘要:官方链接:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/ 以下内容是网上找的,结合官方内容写出的 C#中表达式(Expression)的定义 An e
阅读全文
摘要:1、下载 ExpressionTreeVisualizer https://github.com/zspitz/ExpressionTreeVisualizer/releases , 解压后把相应dll文件拷贝相应的目录 2、拷贝到以下路径之中的任何一个。 sualStudioInstallPath
阅读全文
摘要:大学有一门课程《软件工程》,研究如何组织和管理软件项目。 说实话,这门课不适合本科生,因为学生可能体会不到,课程到底要解决什么问题。只有亲身参与过大项目的开发,经历过大团队,才能感受为什么软件工程很重要,又很难做对。 软件开发有一个难题,叫做"扩展"(scaling),即怎样服务更多的用户。 你有1
阅读全文
摘要:Object Relational Mapping:对象编程-关系数据库 映射,直接用编程的逻辑操作数据库,.net 和编译器(依照ORM)完成 把编程语句转换成成 sql语句,然后再数据库中执行 并反汇结果。而程序员不在关系数据库层面的东西。 一、概述 面向对象编程和关系型数据库,都是目前最流行的
阅读全文
摘要:原文链接 https://docs.microsoft.com/zh-cn/dotnet/csharp/delegate-class c# 包含哪些关键字? 关键字是预定义的保留标识符,对编译器有特殊意义。 除非前面有 @ 前缀,否则不能在程序中用作标识符。 例如,@if 是有效标识符,而 if 则
阅读全文
摘要:字符串比较时候用到 CompareOptions CompareOptionsz [ComVisible(true)] public enum StringComparison { /// <summary> /// 使用区分区域性的排序规则对字符串进行排序和当前区域性对字符串进行比较(根据当前的语
阅读全文
摘要:感觉 最近学习学疯了,突然对以前熟悉的东西感到陌生。然后又回头重新挖掘一下 什么是相等性呢?以前一直用== 默认是值相等,从未去考虑,是地址相等还值相等。今天就详细的研究一下。 .net 平台提供了4中相等性比较符。ReferenceEquals、静态Equals、实例eEquals、==(“ceq
阅读全文
摘要:每个对象都有一个明确定义的生命周期,除了“正在使用”的正常状态之外,还有两个重要的阶段: 构造阶段: 对象最初进行实例化的时期。这个初始化过程称为构造阶段,由构造函数完成。 析构阶段:在删除一个对象时,常常需要执行一些清理工作,例如,释放内存,这由析构函数完成。 还未写完,。。。。。。。。。。。
阅读全文
摘要:init是什么意思? init就 modreq([System.Runtime]System.Runtime.CompilerServices.IsExternalInit) 类型的缩写 modreq= Modified Request:修改请求 IsExternalInit=is Externa
阅读全文
摘要:readonly 关键字是一个可在四个上下文中使用的修饰符: 在字段声明中,readonly 指示只能在声明期间或在同一个类的构造函数中向字段赋值。 可以在字段声明和构造函数中多次分配和重新分配只读字段。 构造函数退出后,不能分配 readonly 字段。 此规则对于值类型和引用类型具有不同的含义:
阅读全文
摘要:计算机组成原理 1、为什么计算的补数(补码)=反码+1? 二进制的减法可以转化成加法运算。利用mod=|负数|+补数 ,计算机的mod =2字长 ,计算的字长是固定的,计算机加法结果超过字长的部分会舍弃,留下部分就是余数。 例如 :一个字长为8的 计算机,表示数字范围是0~28-1 ,一共28种(m
阅读全文
摘要:命名空间:System.Collections.Generic 构造函数:public KeyValuePair (TKey key, TValue value); 属性:只读属性 Key ,只读属性 Value 方法:public void Deconstruct (out TKey key, o
阅读全文
摘要:原文地址:https://www.cnblogs.com/arxive/p/5795423.html 本文对原文进行了部分修改 说明 必须包含名空间System.Collection.Generic Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值) 键必须是唯一的,而值不
阅读全文
摘要:目录 使用简单集合集合的类型 System.Collections.Generic 类 System.Collections.Concurrent 类 System.Collections 类 System.Collections.ObjectModel(命名空间)-》 ReadOnlyCollec
阅读全文
摘要:.Net 新一代编译器 Roslyn 会带来怎样的影响? Roslyn是微软创建的一个.NET编译器平台,该项目于2014年4月3日开源。 最初 C# 语言的编译器是用 C++ 编写的,后来微软推出了一个新的用 C# 自身编写的编译器:Roslyn,它属于自举编译器。 .NET Compiler P
阅读全文
摘要:使用弱引用的准则 仅在必要时使用长弱引用,因为在终结后对象的状态不可预知。 避免对小对象使用弱引用,因为指针本身可能和对象一样大,或者比对象还大。 避免将弱引用作为内存管理问题的自动解决方案, 而应开发一个有效的缓存策略来处理应用程序的对象。 什么时候用到弱引用: 1、事件中 2、
阅读全文
摘要:1、事件中的技巧 (1)在事件发送者中,用delegate{}初始化事件。这样就不用每次在使用事件的时候判读事件是否为空了。 delegate { }可以赋值给任何类型的委托。这个功能匿名方法特有的,是lambda表达式无法取代的。 public event EventHandler<FileFou
阅读全文
摘要:克隆方法是原型设计模式中必须使用的方式,它将返回一个与当前对象数据一致的对象。正如其名,犹如一个模子雕刻而出。克隆类型分为两种:浅克隆、深克隆。 浅复制就是仅复制类中的值类型成员 深复制就是复制类中的值类型成员和引用类型的成员。 浅复制一般由object.MemberwiseClone自动实现,由于
阅读全文
摘要:内容来源:MSN:https://docs.microsoft.com/zh-cn/dotnet/csharp/event-pattern 操作符详解(上) https://www.youtube.com/watch?v=1DhDOJz_S98 操作符详解(中) https://www.youtub
阅读全文
摘要:接口设计方式 自顶向下 (如图所示),自底向上。 接口成员: 事件 public interface IDrawingObject { event EventHandler ShapeChanged; } 在类中实现接口事件在类中声明事件,然后在相应区域中调用它 namespace Implemen
阅读全文
摘要:软件开发方式一共有三种:SDK方式、MFC开发方式、托管环境的开发都是基于消息的开发 SDK方式 原装api的调用SDK方式使用C语言和Windows应用程序编程接口(Windows API)来开发Windows应用程序,Windows API里面都是C函数,类似于C语言的标准函数库,只是Windo
阅读全文
摘要:一、消息概述 众人周知,window系统是一个消息驱动的系统, windows操作系统本身有自己的消息队列称做系统消息队列(操作系统队列),消息循环,它捕捉键盘,鼠标的动作生成消息,并将这个消息传给应用程序的消息队列称作线程消息队列(应用程序队列)。 余下的工作有应用程序处理消息, windows
阅读全文
摘要:#region和#endregion的作用 折叠 收纳代码,对代码进行分组,让代码容易阅读 #region add(x,y) public static void Add(int x, int y) { Console.WriteLine("{0} + {1} = {2}", x, y, x + y
阅读全文
摘要:C#委托Action、Action<T>、Func<T>、Predicate<T> CLR环境中给我们内置了几个常用委托Action、 Action<T>、Func<T>、Predicate<T>,一般我们要用到委托的时候,尽量不要自己再定义一 个委托了,就用系统内置的这几个已经能够满足大部分的需求
阅读全文
摘要:参考:https://www.cnblogs.com/markkang/p/14130867.html 什么是模式匹配? 在特定的上下文中,模式匹配是用于检查所给对象及属性是否满足所需模式(即是否符合一定标准)并从输入中提取信息的行为。它是一种新的代码流程控方式,它能使代码流可读性更强。这里说到的标
阅读全文
摘要:元组的解构是C#内置支持的。 var countrInfo = ("Malawi", "Lilongwe", io); (string name, string ii, var gdpPerCapit) = countrInfo; 对于非元组类型的解构,C# 不提供内置支持。但是,用户作为类、结构或
阅读全文
摘要:文章来源: 青水白凡 C#中 Var关键字 Var是C#3.5新增的一个关键字,用来代替某些具体的类型,由编译器自动判断变量类型,编译器可以根据变量的初始化值“推断”变量的类型。 其主要作用有2个: 1.代替具体类型,实现快速编程的隐式类型用法,常见在foreach便历中,实质是VS编译器给我们提供
阅读全文