![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c#
小小菜鸟cs
这个作者很懒,什么都没留下…
展开
-
WPF 基础知识学习简单总结(一)
备注:内容来自于观看编程宝典概念硬件加速:1 User32:为许多元素(窗口,按钮,文本框)提供熟悉windows外形2 GDI/GDI+:为渲染简单形状,文本和图形提供绘图支持。WPF底层使用DirectX,优势:①可使用丰富的效果;②显卡硬件加速。三、分辨率无关性传统Windows应用程序的用户界面,即图像包含的像素数不变(精细程度不变),但图像大小会变。...转载 2019-03-18 11:19:12 · 4007 阅读 · 0 评论 -
C# [Serializable]的作用 序列化
定义:序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象(百度百科)序列化的目的:1、以某种存储形式使自定义对象持久化;2、将对象从一个地方传递到另一个地方。3、使程序更具维护性。技术:* 二进制序列化保持类型保真度,这对于在应用...转载 2018-12-26 11:39:34 · 3881 阅读 · 0 评论 -
C# 集合的学习总结
以下是对最长用的集合进行简单的总结集合 说明 List<T> 可以像数组一样按索引访问列表,但提供了其他方法来搜索和排序 Queue<T> 先入先出数据结构,提供了方法将数据项添加到队列的一段,从另一端删除项,以及只检查不删除 Stack<T> 先入后出数据结构,提供了方法将数据压入栈顶,从栈顶出栈,以及只检查栈顶的项而不...转载 2018-12-30 17:40:56 · 1324 阅读 · 0 评论 -
wpf学习笔记-前台端数据绑定
1 前端: <TextBox Text="{Binding Path=host, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />绑定元素属性 {Binding Path=host, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}2 模型: ...原创 2019-01-04 15:21:47 · 1190 阅读 · 0 评论 -
C# XML的学习总结
XML(Extensible Markup Language)可扩展的标记语言1.文档头部声明:<?xml version="1.0" encoding="utf-8" ?>?XML标记说明它是一个XML文档,version为版本号,encoding属性表明是编码格式为”utf-8”,standalone取”yes”时,表明该文件未引用其它外部文件。2.注释:<...转载 2019-01-04 10:57:25 · 274 阅读 · 0 评论 -
C#学习总结-迭代器
概念迭代器模式提供了一种方法顺序访问一个聚合对象(理解为集合对象)中各个元素,而又无需暴露该对象的内部表示。迭代器模式是设计模式中行为模式(behavioral pattern)的一个例子,他是简化对象间通讯的模式。在.NET中,迭代器模式被IEnumerator和IEnumerable及其对应的泛型接口所封装。如果一个类实现了IEnumerable接口,那么就能够被迭代;调用GetE...原创 2018-12-29 11:18:46 · 323 阅读 · 0 评论 -
wpf 定时器的学习
至于以上的需求及处理方式本博客只讲解定时器的开发,如下: 首先,微软为WPF定制了一个专门的定时器DispatcherTimer,这句话很重要,省的瞎用! 其次,我们需要引入命名空间->using System.Windows.Threading; 创建定时器对象->DispatcherTimer dispatcherTimer = new Dispatche...转载 2019-01-03 16:00:37 · 351 阅读 · 0 评论 -
C#学习笔记-winform和wpf 事件绑定理解
Binding绑定机制其自身就维护者一个绑定注册表,这个注册表中将源与目标一一对应了起来。Target<---->Source。每当UI的属性值发生改变时,WPF系统将会自动调用一个全局的委托事件处理函数,可能就是public event PropertyChangedEventHandler PropertyChanged。在这个事件中,会使用刚才提到的绑定注册表,从而维护绑定目标...转载 2018-12-27 10:01:43 · 970 阅读 · 0 评论 -
Equals方法的对象比较
C# 对象比较 最近工作中接触到这个,有点迷糊。 .Net 中主要有四种相等比较,分别是:==操作符、 Object.Equals方法、 Object.ReferenceEquals方法、 对象实例的Equals方法。 Object 的 Equals 静态方法实际上是对实例Equals方法的扩展,增加了 null 的判断,适用于比较两个可能为空引用的对象。对于值...转载 2018-12-10 15:00:29 · 1817 阅读 · 0 评论 -
C# 选择文件学习笔记-选择文件、选择文件夹、打开文件(或者文件夹)
C#选择文件、选择文件夹、打开文件(或者文件夹)1、选择文件用OpenDialogOpenFileDialog dialog = new OpenFileDialog();dialog.Multiselect = true;//该值确定是否可以选择多个文件dialog.Title = "请选择文件夹";dialog.Filter = "所有文件(*.*)|*.*";if (dia...转载 2018-12-07 09:49:03 · 792 阅读 · 0 评论 -
C#或JAVA的访问权限
时常会忘记,做个记录:C#里类及类成员的修饰符有以下五个如下:public 公开 类及类成员的修饰符 对访问成员没有级别限制private 私有 类成员的修饰符 只能在类的内部访问protected 受保护的 类成员的修饰符 只能在该类和该类的派生类中访问,不管该派生类和基类是否在同一程序集中internal 内部的 类及类成员的修饰符 访问仅限于程序集中protected inte...转载 2018-12-13 09:20:18 · 231 阅读 · 0 评论 -
C# 详细的多线程和线程同步学习总结
进程进程(Process)包含运行程序所需要的资源。 正在运行的应用程序被视为进程,进程可以有多个线程。 进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式), 一个进程运行的失败也不会影响其他进程的运行,Windows系统就是利用进程把工作划分为多个独立的区域的。 进程可以理解为程序的基本边界。是应用程序的一个运行例程,是应用程序的一次动态执行过程。...转载 2019-01-17 12:54:38 · 969 阅读 · 0 评论 -
c# 学习总结socket
要点:服务器端:第一步:用指定的端口号和服务器的ip建立一个EndPoint对像;第二步:建立一个Socket对像;第三步:用socket对像的Bind()方法绑定EndPoint;第四步:用socket对像的Listen()方法开始监听;第五步:接受到客户端的连接,用socket对像的Accept()方法创建新的socket对像用于和请求的客户端进行通信;第六步:通信结束后一定记得...转载 2019-01-07 09:46:47 · 999 阅读 · 1 评论 -
C# 网络知识总结
示意学习httptcpudpsocket定义,区别,优点SOCKET称为套接字,TCP/IP基本单元,不同主机双向通信的端点,既保存IP地址和端口,也保持通信协议。1流套接字:面向连接的TCP通信 数据报套接字:无连接的UDP通信 原始套接字:IP数据包的通信端口:端口号识别不同的进程。TCP:面向连接的,基于字节流,可靠的通信协议。三...转载 2019-06-17 11:02:11 · 208 阅读 · 0 评论 -
C# WCF学习简单总结
WCF 学习简单总结定义:面向服务的分布式编程框架。统一COM和.Net Remoting提供通用,可靠的分布式编程模型。具有ABC这三个特性。A->Address 地址地址包含服务位置和传输协议(传输样式)这两个元素。基于http协议 基于tcp协议 基于进程间通信 基于消息队列通信当然还有包括https和服务总线的协议模型。B->Binding...转载 2019-03-06 15:52:59 · 844 阅读 · 1 评论 -
asp.net mvc 管道模型 学习总结
1.Http请求处理流程处理文件1IIS根据文件的后缀名处理html或asp2服获取后缀名以后,寻找处理的程序,找不到或没有受到服务器端的保护 直接返还文件。(受保护的例子是 App_Code中的),3 处理后缀名程序,称为 ISAPI 应用程序,代理作用,映射请求页面和后缀名相对的处理程序。一个完整的HTTP请求流程:1.用户浏览器输入地址, 2.DNS解析(域名...转载 2019-03-03 15:20:47 · 2262 阅读 · 0 评论 -
C# webservice的总结使用
webservice的总结使用基础概念概念: WebService是跨编程语言和跨操作系统平台的远程调用技术。作用:接收和传递Internet的请求,轻量级的独立的通讯技术实现:通过SOAP提供服务,使用WSDL说明,通过UDDI注册。调用webservice根据WebService地址的WSDL,模拟生成代理类,反射调用方法 利用visual studio添加服...转载 2019-03-05 20:47:58 · 355 阅读 · 0 评论 -
C# json自定义转化类型,帮助写接口文档
1json自定义转化类型指定实列类型的属性序列化在.Net中把对象转为json字符串主要有四种,具体参考1自己转化灵活,但难度大,能实现。2使用Newtonsoft.Json,看了一下官方文档,似乎不能实现,能忽略默认,空值等属性,也可以控制json时输出那些属性,但需要使用特性,也就是说,对于指定的类型,json输出的属性是确定的,不能动态改变。3使用JavaScriptS...原创 2019-03-05 11:20:12 · 1130 阅读 · 0 评论 -
C# wpf 工作学习方法总结
一 弹出新窗口方法1新窗口出现,直接new出新窗口 VisitSet vis = new VisitSet(); //打开一个窗口,并关闭新打开的窗口时,才返回。 if (win.ShowDialog() == true) { }2 设置窗口出现在中央...转载 2019-01-09 09:43:21 · 769 阅读 · 0 评论 -
C# 正则表达式学习
C#使用正则表达式添加引用:using System.Text.RegularExpressions;使用举例程序代码://初始化字符串 string str =this.txtSource.Text; //定义正则表达式规则 Regex reg = new Regex("[a-zA-Z]+"); //返回一个结果集 MatchColle...转载 2019-01-03 11:26:34 · 541 阅读 · 0 评论 -
C# 获取公网ip地址
1 通过HttpWebRequest获取网页数据 public static string HttpGet(string url, string encoding) { string result = string.Empty; try { Encoding...原创 2019-01-03 11:12:31 · 6645 阅读 · 1 评论 -
C# 网络编程练习
1 把网络图片转化为Image,获取网络图片直接stream转化 private Image ImageFromWeb(String url ) { //获取HttpWebRequest对象 HttpWebRequest request = (HttpWebRequest)WebReq...转载 2018-11-30 15:16:56 · 924 阅读 · 0 评论 -
学习笔记-面向对象
面向对象和面向过程区别面向过程就是分析出解决问题需要的步骤,然后用函数把这些步骤一个个实现,使用的时候依次调用,面向过程的核心是过程。面向对象就是把构成问题的事物分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述某个事物在解决问题中的行为,面向对象的核心是对象。面向过程就是你把代码封装成函数(procedure),然后依次去做一件事情;面向对象就是你把要做的事情抽象成对象,告...转载 2018-09-30 12:25:20 · 284 阅读 · 0 评论 -
学习笔记-多线程编程与线程同步
线程基础 进程与线程我们运行一个exe,就是一个进程实例,系统中有很多个进程。每一个进程都有自己的内存地址空间,每个进程相当于一个独立的边界,有自己的独占的资源,进程之间不能共享代码和数据空间。每一个进程有一个或多个线程,进程内多个线程可以共享所属进程的资源和数据,线程是操作系统调度的基本单元。线程是由操作系统来调度和执行的,她的基本状态如下图。 线程的开销及调度...转载 2018-09-10 12:29:06 · 258 阅读 · 0 评论 -
学习笔记- GC与内存管理
深入GC与内存管理托管堆中存放引用类型对象,因此GC的内存管理的目标主要都是引用类型对象,本文中涉及的对象如无明确说明都指的是引用类型对象。 对象创建及生命周期一个对象的生命周期简单概括就是:创建>使用>释放,在.NET中一个对象的生命周期:new创建对象并分配内存 对象初始化 对象操作、使用 资源清理(非托管资源) GC垃圾回收那其中重要的一个环节,就是对象...转载 2018-09-05 12:22:20 · 461 阅读 · 0 评论 -
学习笔记- 常量、字段、属性、特性与委托
字段与属性的恩怨 常量常量的基本概念就不细说了,关于常量的几个特点总结一下:常量的值必须在编译时确定,简单说就是在定义是设置值,以后都不会被改变了,她是编译常量。 常量只能用于简单的类型,因为常量值是要被编译然后保存到程序集的元数据中,只支持基元类型,如int、char、string、bool、double等。 常量在使用时,是把常量的值内联到IL代码中的,常量类似一个占位符,在...转载 2018-08-28 20:55:36 · 273 阅读 · 0 评论 -
学习笔记- 类型、方法与继承
对哇 类型基础知识梳理 类型Type简述通过本系列前面几篇文章,基本了解了值类型和引用类型,及其相互关系。如下图,.NET中主要的类型就是值类型和引用类型,所有类型的基类就是System.Object,也就是说我们使用FCL提供的各种类型的、自定义的所有类型都最终派生自System.Object,因此他们也都继承了System.Object提供的基本方法。System.Obje...转载 2018-08-23 14:10:25 · 164 阅读 · 0 评论 -
学习笔记-拆箱与装箱
基本概念拆箱与装箱就是值类型与引用类型的转换,她是值类型和引用类型之间的桥梁,他们可以相互转换的一个基本前提就是上面所说的:Object是.NET中的万物之源先看看一个小小的实例代码: int x = 1023; object o = x; //装箱 int y = (int) o; //拆箱装箱:值类型转...转载 2018-08-17 16:20:35 · 200 阅读 · 0 评论 -
学习笔记- 认识值类型与引用类型
认识值类型与引用类型万变不离其宗,只要搞清楚值类型和引用类型的原理,上面所有题目就都迎刃而解了。 基本概念下图清晰了展示了.NET中类型分类,值类型主要是一些简单的、基础的数据类型,引用类型主要用于更丰富的、复杂的、复合的数据类型。 内存结构值类型和引用类型最根源的区别就是其内存分配的差异,在这之前首先要理解CLR的内存中两个重要的概念:Stack 栈:线程栈,由操...转载 2018-08-16 17:12:18 · 121 阅读 · 0 评论 -
C# MVC 统一修改日志的添加
实现效果: 对任意一个数据库的实体类,很轻松的使用一个公共方法,添加对实体类修改的日志实现思路:对任意实体类,添加一个MVC特性Attribute,当实体类添加或修改的时候,执行一个公共方法,检查是否有这个特性,如果有并且实体类对象状态EntityState是修改状态,开启一个线程,进行日志的插入。1 首先建立修改日志类 [Table("AuditLog")] publ...转载 2018-08-13 17:56:12 · 919 阅读 · 0 评论 -
学习笔记-C# 静态构造函数,静态变量执行顺序
一、成员初始化整体顺序1.成员赋值初始化先于构造函数;2.成员赋值初始先从子类再到基类;3.构造函数初始化先从基类再到子类;4.静态成员初始化优先于实例成员初始化;二、对类型静态成员构造的大致过程1.分配静态成员的内存空间,此时空间存储数据为0;2.执行类的静态成员的初始化语句;3.执行类的静态构造函数。三、对类型实例成员构造的大致过程1.分配实例成员的内存...转载 2018-08-13 17:35:33 · 2104 阅读 · 0 评论 -
学习笔记-String为值类型还是引用类型
转载String为值类型还是引用类型//值类型 int a = 1; int b = a; a = 2; Console.WriteLine("a is {0},b is {1}", a, b); //字符串 string str1...转载 2018-08-14 20:18:49 · 2645 阅读 · 1 评论 -
C# 使用MVC和lo4net记录发生异常,并显示自定义错误页面
使用日志组件log4net记录异常日志到达效果:在控制器层自动捕获错误,并把错误保存到数据库,之后显示希望用户看到的错误页面1 首先安装log4net(1)“程序包管理器控制台”用命令安装:先要打开控制台,在“工具”→“NuGet程序包管理器”→“程序包管理器控制台”这样就可以打开程序包管理器控制台。(2)也可以在项目中添加对log4net.dll的引用 2 ...转载 2018-08-01 20:21:20 · 886 阅读 · 0 评论 -
使用LINQ排序分页日期遇到NULL值的处理
1 根据条件来选择排序对象因为涉及到联查对象的属性排序,所以不能直接根据条件排序分页比如: public static IQueryable<T> ToPage<T>(IQueryable<T> allItems, int pageIndex, int pageSize) { if (pageI...原创 2018-07-18 20:19:44 · 986 阅读 · 0 评论 -
C#通过excel导入数据
总体思路:前台获取excel的数据流,再解析成列名对应列Dataset的形式,遍历Dataset,新建实体类,通过泛型读取类中的属性,如果列名等于实体类属性,就给这个属性赋值,最后统一插入数据库。实现细节。1 前台获取excel的数据流 HttpPostedFileBase file = base.Request.Files["ExcelFile"]...原创 2018-07-18 20:13:10 · 671 阅读 · 0 评论 -
c# .net 缓存总结
一 服务端缓存1 RedisRedis是Key/Value的内存数据库作用:缓解数据库的压力将一些不经常变化的而又读取频繁的数据存入redis缓存Redis支持主从同步。思路:首先判断缓存中是否存在,如存在直接从Redis缓存中获取。如果Redis缓存中不存在,实时读取数据库数据,同时写入缓存(并设定缓存失效的时间)。缺点:如果直接修改了数据库的数据而又没有...转载 2018-10-15 19:41:51 · 2327 阅读 · 0 评论 -
C#.net 部分概念总结
基础技术概念WebService是跨编程语言和跨操作系统平台的远程调用技术。WCF面向服务的分布式编程框架。统一COM和.Net Remoting提供通用,可靠的分布式编程模型。web api 是构建HTTP服务的轻型框架,覆盖广泛的客户端, RESTful风格.NET Core 是开源、跨平台框架,构建基于网络连接的现代云应用程序三层架构:数据访问层:对数据库的操作...转载 2018-10-16 06:11:33 · 182 阅读 · 0 评论 -
设计模式学习笔记-工厂方法模式
定义:创建一个工厂接口和创建多个工厂实现类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。解决问题:简单工厂模式的问题,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则动机(Motivate) 在软件系统的构建过程中,经常面临着“某个对象”的创建工作:由于需求的变化,这个对象(的具体实现)经常...转载 2018-12-04 13:49:37 · 178 阅读 · 0 评论 -
设计模式笔记-单例模式
定义确保某一个类只有一个实例,并且提供一个全局访问点。单例模式具备典型的3个特点只有一个实例。 2、自我实例化。 3、提供全局访问点。为什么会有单例模式单例模式的使用自然是当我们的系统中某个对象只需要一个实例的情况,例如:操作系统中只能有一个任务管理器,操作文件时,同一时间内只允许一个实例对其操作等,既然现实生活中有这样的应用场景,自然在软件设计领域必须有这样的解决方案了(因为软...转载 2018-11-29 17:13:22 · 145 阅读 · 0 评论 -
C# BackgroundWorker的用法
BackgroundWorker是.NET Framework 里用来执行多线程任务的控件,它允许开发人员在一个单独的线程上执行一些操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 始终处于停止响应状态。如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用 BackgroundWorker 类方便地解决问题。若要在后台执行耗时的操作,请...转载 2018-11-29 11:56:11 · 1112 阅读 · 0 评论