9 begeneral

尚未进行身份认证

暂无相关简介

等级
TA的排名 7w+

EF Code First 数据库迁移命令

Enable-Migrations [-ContextTypeName <String>] [-EnableAutomaticMigrations] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConnectionStringName <String>] [-Force] [&lt...

2020-03-26 07:40:32

WPF学习笔记:Binding的数据转换

前面我们讲解的数据绑定都是非常简单的数据类型,基本上都是int或者string,都可以很容易的显示在界面上。但是想象一个这样的场景:我们定义了一个枚举,这个枚举有2个枚举值,checked和unchecked。界面上有一个checkbox,当值为checked时,复选框被选中。因为checkbox是无法识别枚举项的,所以这里需要一个数据的转换,把枚举项转换成bool值。下面我们看一个例子:...

2020-02-27 20:51:44

WPF学习笔记:Binding对数据的校验

在我们给控件的某个属性赋值或者当控件的某个属性值改变时,我们可能会需要检查这个值是不是在规定的范围内。如果这个值不在规定的范围内,我们需要给出提示。WPF中实现这个功能的类是ValidationRule。先看一个例子吧:xaml代码:<Window x:Class="BindValidationRule.MainWindow" xmlns="http://schem...

2020-02-27 20:15:14

WPF学习笔记:添加二进制资源

在程序开发中,我们经常要引用外部的图片、视频等文件。这些文件如果不被编译进可执行文件里(exe或dll),则可能会丢失。下面我们来看一下怎么把这些外部资源文件编译进我们的程序中。我们以图片为例,在Image控件中显示一张外部的图片。首先在当前项目的顶部右击=》添加=》新建文件夹,我的项目目录如下:文件名可以随意命名,我建了Resource文件夹,下面新建了一个Icon文件夹,用来放...

2020-02-20 19:49:07

WPF学习笔记:Binding不同类型的源

1、集合对象WPF列表式控件派生自ItemsControl类,自然也就继承了ItemsSource这个属性。ItemsSource属性可以接收一个IEnumerable接口派生类的实例作为自己的值(所有可被迭代遍历的集合都实现了这个接口,例如:List<T>)。每个ItemsControl的派生类都具有自己对应的条目容器。例如ListBox的条目容器就是ListBoxItem。It...

2020-02-17 20:09:45

WPF学习笔记:Binding基础

我们知道WPF最重要的一个特性是数据驱动UI,Binding就是实现这个特性的桥梁,这个类把数据和界面控件关联起来。而且它还支持双向通信。当数据改变时,界面显示会自动改变;当界面内容改变时,后台的数据也会自动改变。当然这个双向通信是可以设置的。1、Binding基础binding源和目标。刚才说binding是一座桥梁,那源和目标就是桥梁的两端。一般来说,源就是数据,目标就是UI,但也可以...

2020-02-15 18:51:56

WPF学习笔记:x名称空间详解

字母x其实是XML的首字母,x命名空间对应的就是这一条语句:xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml",它包含的类均与解析XAML语言相关,主要分为3类:Attribute、标记扩展、指令元素1、Attribute1.1、x:Class这个Attribute的作用是告诉XAML编译器将XAML标签的编译结果与后台代码中指...

2020-02-06 10:23:41

WPF学习笔记:XAML入门

1、什么是XAMLXAML是WPF技术中专门用于设计UI的语言,它在桌面开发及富媒体网络程序的开发中扮演了HTML+CSS+JAVASCRIPT的角色,成为设计师和程序员之间沟通的桥梁。它帮助开发团队真正实现了UI与逻辑的分离。2、解析最简单的XAML代码我们新建一个WPF项目,然后打开UI设计界面,代码如下:<Window x:Class="WpfApp1.MainWin...

2020-02-04 10:18:04

c# task异常处理

我们这里说的task异常处理其实指的是异步方法的异常,现在处理异步我们基本上用的都是task,所以这里只讨论了task的异常处理。在没有出现task之前,我们一般用BeginInvoke方法开始异步,然后在这个方法里面定义一个回调函数,在这个回调函数里处理异常,由于这个方法已经过时,这里就不做介绍了。异常处理一般包括两种:1、将异常信息写入到错误日志。2、抛出异常。这里我们讨论第二种情况。因为...

2020-01-17 20:10:32

C# 任务和线程的区别

任务即Task类,线程即Thread类。使用任务执行并行和并发代码是微软强烈推荐的,因为任务比线程的抽象级别更高,而且任务是并行的。关于并发和并行的区别,这里就不做介绍了,网上有很多资料。1、线程池创建任务的基本原理是使用线程池,也就是说任务最终也是要交给线程去执行的。但是微软优化了任务的线程池,使线程的控制更加精准和高效。对于需要频繁创建线程的程序来说,使用线程池无疑是最好的选择。因...

2020-01-15 11:23:58

职场感悟

正式进入职场是在2012年3月份左右。当时第一份工作做的是软件测试,测试ERP之类软件的功能,非常简单,没有什么技术含量。当时的月薪是1800块,才做了1个月左右就被开除了,因为老板没有看到我的工作成果,觉得我没有价值。但是实际上我测出了那个软件的很多BUG,只是我没有告诉老板,只和软件的开发人员说了。老板开除我的时候,有一个开发人员告诉老板说我测出了软件的很多BUG,这时老板意识到了我的价值,打...

2020-01-06 17:24:55

c# 调试技巧

大家都知道,打断点是最为大家所熟知的调试技巧,但是除了打断点,还有哪些调试的技巧呢?System.Diagnostics;这个命令空间里有很多可供调试的类库。Diagnostics这个单词的意思是诊断,在软件的世界里就是诊断程序存在的问题,即调试。下面为大家介绍这个类库里几个非常实用的方法,这几个方法只在DEBUG模式下被编译,而在Release模式下是不会被编译。1、Debug.Writ...

2020-01-06 10:34:48

VS2017社区版远程调试

1、首先在VS的安装目录下找到Remote Debugger目录,我本机的目录是:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Remote Debugger。然后将该目录拷贝到远程目标机上。在该目录下面找到文件msvsmon.exe,运行该exe文件,打开远程调试器。2、将需要远程调试的...

2019-12-30 14:27:29

c# Newtonsoft.Json序列化字符串

之前一直以为Newtonsoft.Json在将字符串序列化成一个对象的时候,如果有不匹配的字段,序列化会报错或者返回NULL。今天测试了一下发现不是这么回事。新建了一个测试类:class TestCls { /// <summary> /// 姓名 /// </summary> public st...

2019-11-07 10:25:27

c# string类型存储原理

在c#里面,string类型被划分为引用类型。但是从严格意义上来说,它即不是引用类型也不是值类型,因为它即具备引用类型的特点,同时也具备值类型的特点。我们来看一个例子:static void Main(string[] args) { string a = "hello"; string b = "hello"; ...

2019-08-05 11:26:31

c# modbus RTU CRC16校验和计算

校验和算法:1) 预置 1 个 16 位的寄存器为十六进制FFFF(即全为 1) , 称此寄存器为 CRC寄存器。2) 把第一个 8 位二进制数据 (通信信息帧的第一个字节) 与 16 位的 CRC寄存器的低 8 位相异或, 把结果放于 CRC寄存器。3) 把 CRC 寄存器的内容右移一位( 朝低位)用 0 填补最高位, 并检查右移后的移出位。4) 如果移出位为 0, 重复第 3 ...

2019-08-02 14:23:15

c# task三种创建方式的区别

大家都知道现在微软推荐创建线程的方式是使用Task类,而不是原始的Thread类。但是创建Task线程的方式有3种:Task.Run,Start,TaskFactory.StartNew,你知道这三种方式的区别吗?首先我们说Task.Run和StartNew的区别1、它是将在线程池上运行的指定工作排队,它默认的任务计划(TaskScheduler)是线程池,并且不允许修改任务计划。而Sta...

2019-08-01 11:44:59

感悟

2019年5月底,我从工作了9个月的公司辞职了。辞职的主要原因是:这个公司是一个销售型公司,对研发的重视度不够,每天都在充当消防员的角色。虽然每天都在加班,但是学习的时间很少,都在做一些简单枯燥的工作。辞职后在家休息了2天,然后就开始写简历找工作了。基本上每天8-9点我就到了深圳市科技图书馆。到了图书馆之后就开始写(修改)简历,投简历。我规定自己每天只投10份简历,因为如果后面发现简历有问...

2019-07-18 18:16:41

c# 判断一个对象的某个事件是否被注册

var property = this.BindingSource[DsQueryProc.Tables[0].TableName].GetType().GetProperty("DataSourceChanged", BindingFlags.Instance | BindingFlags.NonPublic);if(property==null) this.BindingSource...

2019-05-17 11:04:27

sqlserver TempDB详解

本人使用的测试数据库是2012版本的TempDB就是临时数据库。它具有以下特性:1、重启服务之后,没有东西会存储在TempDB中,因为每次重启都会重建。隐含的意思就是你不可以对这个库进行备份还原。2、它永远是简单恢复模式。3、它只是一个文件组,就是Primary文件组,不能增加额外的文件组,但是可以增加文件。4、它主要存放3类对象:用户对象、内部对象、版本存储。下面介绍一下...

2019-05-04 12:09:22

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。