自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 C# as与is的用法

类型转换任何类型都可以转换为其基类类型,用隐式转换完成;任何类型转换为其派生类型时,必须进行显示转换。如:(类型名)对象名;使用GetType可以取得任何对象的精确类型;基本类型可以使用Convert类实现类型转换;除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing...

2019-12-30 08:55:00 217

原创 WPF自定义控件与样式(10)-进度控件ProcessBar自定义样

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。   本文主要内容: ProcessBar自定义标准样式; ProcessBar自定义环形进度样式; 二.ProcessBar标准样式   效果图:   ProcessBar的样式非常简单...

2019-12-29 15:49:00 341

原创 WPF自定义控件与样式(2)-自定义按钮FButton

一.前言.效果图   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。还是先看看效果图吧:二.按钮FButton控件定义 2.1 FButton继承自微软基础控件Button (C#代码)   FButton继承自微软基础控件Button,没有什么逻辑代码,主...

2019-12-27 17:07:00 407

原创 WPF自定义控件与样式(1)-矢量字体图标(iconfont)

一.图标字体   图标字体在网页开发上运用非常广泛,具体可以网络搜索了解,网页上的运用有很多例子,如Bootstrap。但在C/S程序中使用还不多,字体图标其实就是把矢量图形打包到字体文件里,就像使用一般外置字体一样的使用,因此Winform、WPF中都是可以用的。   在我们多个WPF项目中广泛使用了图标字体,包括自定义控件、自定义样式、模板等。总结下: 网上开源字体图标很多,...

2019-12-27 16:59:00 364

原创 C#可扩展编程之MEF学习笔记(五):MEF高级进阶

好久没有写博客了,今天抽空继续写MEF系列的文章。有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后。前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用的基本已经讲完了,相信大家已经能看出MEF所带来的便利了。今天就介绍一些MEF中一些较为不常用的东西,也就是大家口中的所谓的比较高级的用法。前面讲的导出都是在每个类上面添加Export注解...

2019-12-27 15:49:00 206

原创 C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻。如果没有看过前面的文章,请到我的博客首页查看。  前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要采用分层架构,就拿最简单的三层架构来说吧,我们通常把业务逻辑写在DLL中,现在就来写一个例子,看看如何在不编译整个项目的情况下,轻松的实现扩展。先透露一下,我们只要添加一个DLL就可以了...

2019-12-27 15:47:00 163

原创 C#可扩展编程之MEF学习笔记(三):导出类的方法和属性

  前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来说下MEF是如何导出方法和属性的。  还是前面的代码,第二篇中已经提供了下载链接,大家可以下载学习。  首先来说导出属性,因为这个比较简单,和导出类差不多,先来看看代码,主要看我加注释的地方,MusicBook.cs中的代码如下:using S...

2019-12-27 15:45:00 169

原创 C#可扩展编程之MEF学习笔记(二):MEF的导出(Export)和导入(Import)

  下面我们来主要讲解一下MEF中的导入和导出,还是上一篇的代码(这篇中,我还会贴出完整的代码),修改Program的代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Reflection;using System.Comp...

2019-12-27 15:43:00 380

原创 C#可扩展编程之MEF学习笔记(一):MEF简介及简单的Demo

  在文章开始之前,首先简单介绍一下什么是MEF,MEF,全称Managed Extensibility Framework(托管可扩展框架)。单从名字我们不难发现:MEF是专门致力于解决扩展性问题的框架,MSDN中对MEF有这样一段说明:  Managed Extensibility Framework 或 MEF 是一个用于创建可扩展的轻型应用程序的库。 应用程序开发人员可利用该库...

2019-12-27 15:42:00 383

原创 C#面试题(类和结构体、String和StringBuilder、equals和==)

类和结构体类和结构体的不同点:  1.关键字不同 一个是class,一个是struct  2.类型不同,一个是引用类型,一个是值类型(存储:一个堆区,一个栈区)。关于值类型和引用类型以及堆与栈详细可见http://www.cnblogs.com/aehyok/p/3504449.html  3.成员不同,结构体没有默认的构造函数(可以添加)和没有析构函数,不可以使用abstr...

2019-12-23 08:46:00 240

原创 WPF MVVM从入门到精通8:数据验证

WPF MVVM从入门到精通8:数据验证 到目前为止,登录窗口的基本功能似乎都完成了。但我们知道,很多时候用户名的格式是有要求的,例如是只有字母数字下划线,或者字数有限制。这要求我们在登录之前,验证输入内容的正确性。在这一节,我们需要验证用户名和密码的正确性,如果上...

2019-12-18 09:11:00 218

原创 WPF MVVM从入门到精通7:关闭窗口和打开新窗口

WPF MVVM从入门到精通7:关闭窗口和打开新窗口 若是登录成功,我们一般会执行的操作是关闭当前窗口,然后打开一个新的窗口。但为了比较理想地实现MVVM,我们被禁止在ViewModel里面访问View的元素。那我们该如何实现上面的功能呢?首先是打开窗口的功能,我们...

2019-12-18 09:10:00 483

原创 WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定

WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定 当我们要进行性别这一属性绑定的时候,我们会发现,两个RadioButton控件都跟一个Gender属性关联。其实我们在绑定控件时还会遇到这样一个问题:属性是一个bool类型,但需要绑定控件的V...

2019-12-18 09:08:00 328

原创 WPF MVVM从入门到精通5:PasswordBox的绑定

WPF MVVM从入门到精通5:PasswordBox的绑定 读到这里,可能有的读者会发现,我们只讲了用户名的绑定,然后就说到登录事件了,跳过了密码框和单选框的绑定。是因为这两者完全类似,不需要讲吗?并不是,而是因为它们涉及到了新的课题。对于PasswordBo...

2019-12-17 15:07:00 276

原创 WPF MVVM从入门到精通4:命令和事件

WPF MVVM从入门到精通4:命令和事件 这一部分我们要做的事情,是把点击登录按钮的事件也在ViewModel里实现。若不是用MVVM模式,可能XAML文件里是这样的:<Button Grid.Row="3" Grid.ColumnSpan="2" Co...

2019-12-14 17:00:00 259

原创 WPF MVVM从入门到精通3:数据绑定

WPF MVVM从入门到精通3:数据绑定 我们前面已经说过,现在后端和前端可以分头行事了。我们先来看看后端要做的事情。对应于用户名输入框,ViewModel里面应该有一个相应的对象。当这个对象状态发生改变时,需要向View发出一个通知。因为所有的属性都要做这么...

2019-12-14 16:58:00 184

原创 WPF MVVM从入门到精通2:实现一个登录窗口

WPF MVVM从入门到精通2:实现一个登录窗口 我们究竟要做一个怎样的东西呢?直接上图:这看起来比较简单,但把这个登录窗口做完,MVVM的入门就基本完成了。(为什么登录界面要选择性别这么奇怪?无非是因为RadioButton的绑定也是一个课题)很多教程都是...

2019-12-14 16:57:00 274

原创 WPF MVVM从入门到精通1:MVVM模式简介

WPF MVVM从入门到精通1:MVVM模式简介 刚开始接触和使用MVVM模式的时候,就有一种感觉:哇,实现这么一丁点的功能,竟然要写这么多代码,太麻烦了吧!但是后来当我熟悉了这种模式之后,感觉就变成了:哇,还是这么麻烦。没错,使用MVVM模式的确要在项目中增加很...

2019-12-14 16:55:00 319

原创 .NET面试题解析(9)-SQL语言基础及数据库基本原理

.NET面试题解析(9)-SQL语言基础及数据库基本原理 见面试题1. 索引的作用?她的优点缺点是什么?2. 介绍存储过程基本概念和 她的优缺点?3. 使用索引有哪些需要注意的地方?4. 索引碎片是如何产生的?有什么危害?又该如何处理?5. 锁的目...

2019-12-12 14:26:00 660

原创 .NET面试题解析(07)-多线程编程与线程同步

.NET面试题解析(07)-多线程编程与线程同步 常见面试题目:1. 描述线程与进程的区别?2. 为什么GUI不支持跨线程访问控件?一般如何解决这个问题?3. 简述后台线程和前台线程的区别?4. 说说常用的锁,lock是一种什么样的锁?5. lock为...

2019-12-12 14:24:00 320

原创 .NET面试题解析(06)-GC与内存管理

.NET面试题解析(06)-GC与内存管理 常见面试题目:1. 简述一下一个引用对象的生命周期?2. 创建下面对象实例,需要申请多少内存空间?public class User{ public int Age { get; set; } ...

2019-12-11 11:10:00 261

原创 .NET面试题解析(05)-常量、字段、属性、特性与委托

.NET面试题解析(05)-常量、字段、属性、特性与委托 常见面试题目:1. const和readonly有什么区别?2. 哪些类型可以定义为常量?常量const有什么风险?3. 字段与属性有什么异同?4. 静态成员和非静态成员的区别?5. 自动属性有...

2019-12-11 11:09:00 202

原创 .NET面试题解析(04)-类型、方法与继承

.NET面试题解析(04)-类型、方法与继承 常见面试题目:1. 所有类型都继承System.Object吗?2. 解释virtual、sealed、override和abstract的区别3. 接口和类有什么异同?4. 抽象类和接口有什么区别?使用时有...

2019-12-11 11:08:00 171

原创 .NET面试题解析(03)-string与字符串操作

.NET面试题解析(03)-string与字符串操作 常见面试题目:1.字符串是引用类型类型还是值类型?2.在字符串连接处理中,最好采用什么方式,理由是什么?3.使用 StringBuilder时,需要注意些什么问题?4.以下代码执行后内存中会存在多少...

2019-12-11 11:07:00 212

原创 .NET面试题解析(02)-拆箱与装箱

.NET面试题解析(02)-拆箱与装箱 常见面试题目:1.什么是拆箱和装箱?2.什么是箱子?3.箱子放在哪里?4.装箱和拆箱有什么性能影响?5.如何避免隐身装箱?6.箱子的基本结构?7.装箱的过程?8.拆箱的过程?9.下面这段代码输出什么?共...

2019-12-11 11:06:00 254

原创 .NET面试题解析(01)-值类型与引用类型

.NET面试题解析(01)-值类型与引用类型 常见面试题目:1. 值类型和引用类型的区别?2. 结构和类的区别?3. delegate是引用类型还是值类型?enum、int[]和string呢?4. 堆和栈的区别?5. 什么情况下会在堆(栈)上分配数据...

2019-12-10 08:42:00 127

原创 3D开发基础知识和简单示例

3D开发基础知识和简单示例 引言现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象。那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当然还有体感游戏等等。3D 用...

2019-12-10 08:42:00 472

原创 六大设计原则详解

六大设计原则详解 前言面向对象有人分为五大原则,分别为单一职责原则、开放封闭原则、依赖倒置原则、接口隔离原则、里氏替换原则。也有人分为六大原则,分别为单一职责原则、开放封闭原则、依赖倒置原则、接口隔离原则、里氏替换原则、迪米特法则。一、迪米特法则1)概念其...

2019-12-10 08:42:00 171

原创 InnoSetup跨脚本传参数

InnoSetup跨脚本传参数 需求:在a.iss脚本传递参数给b.iss举例:a.iss:传程序安装路径给b.issParameters: /Path={app}b.iss:接收a.iss传过来的安装路径DefaultDirName={param:Pat...

2019-12-10 08:42:00 337

原创 WPF ListBox 隐藏滑块

WPF ListBox 隐藏滑块 <ListBox ScrollViewer.VerticalScrollBarVisibility = "Disabled";</ListBox> ...

2019-12-10 08:42:00 325 1

原创 InnoSetup 根据选择的安装语言显示不同语言的(协议)License和更新说明

InnoSetup 根据选择的安装语言显示不同语言的(协议)License和更新说明 需求在安装时,选择中文安装,显示中文版协议(License)文件。在安装时,选择英文安装,显示英文版协议(License)文件。解决[Languages]段中有Lic...

2019-12-10 08:42:00 326 1

原创 InnoSetup 安装选择不同语言,修改软件配置参数,达到安装语言就是软件语言效果...

InnoSetup 安装选择不同语言,修改软件配置参数,达到安装语言就是软件语言效果 需求在软件安装时,选择中英文安装界面,选择的中英文界面就是对应软件内界面语言。在软件安装时,选择中文界面,打开软件就是中文界面。在软件安装时,选择英文界面,打开软件就是英文界...

2019-12-10 08:42:00 1006

原创 C#命名规则和设计规则

C#命名规则和设计规则 Pascal将每个单词的第一个字符大写、遇到两个字母的首字母缩略词时,两个字母都要大写命名空间:使用公司名作为前缀、在第二级名称中使用稳定的与版本无关的产品名称类型:名词或名词短语命名结构:名词或名词短语命名接口:形容词短语或偶尔用...

2019-12-10 08:42:00 131

原创 AllowsTransparency="True" 怎么放大缩小窗体

AllowsTransparency="True" 怎么放大缩小窗体 后台都不用写任何代码!xaml:<Window x:Class="TestNoBorderWindow" xmlns="http://schemas.micros...

2019-12-10 08:42:00 162

原创 C# 判断(Excel)文件是否已经打开

C# 判断(Excel)文件是否已经打开 using System.IO;using System.Runtime.InteropServices;[DllImport("kernel32.dll")]public static extern IntPtr...

2019-12-10 08:42:00 1387

原创 InnoSetup 跨脚本传参数

需求:在a.iss脚本传递参数给b.iss举例:a.iss:传程序安装路径给b.issParameters: /Path={app}b.iss:接收a.iss传过来的安装路径DefaultDirName={param:Path | 默认值}...

2019-12-10 08:42:00 362

原创 正则表达式问题全解

正则表达式问题全解 一、元字符元字符是构造正则表达式的一种基本元素。. :匹配除换行符以外的任意字符w:匹配字母或数字或下划线或汉字s:匹配任意的空白符d:匹配数字b:匹配单词的开始或结束^:匹配字符串的开始$:匹配字符串的结束 匹配有abc...

2019-12-10 08:41:00 216

原创 C#程序编写高质量代码改善的157个建议【20-22】[泛型集合、选择集合、集合的安全]...

C#程序编写高质量代码改善的157个建议【20-22】[泛型集合、选择集合、集合的安全] 建议20、使用泛型集合来替代非泛型集合http://www.cnblogs.com/aehyok/p/3384637.html这里有一篇文章,是我之前专门来介绍泛型的。...

2019-12-10 08:34:00 125

原创 C#程序编写高质量代码改善的157个建议【16-19】[动态数组、循环遍历、对象集合初始化]...

C#程序编写高质量代码改善的157个建议【16-19】[动态数组、循环遍历、对象集合初始化] 前言  软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类。不管是数组还是集合类,它们都有各自的优缺点。如何使用好集合是我们在开发过程中必须掌握的...

2019-12-10 08:28:00 142

原创 C#程序编写高质量代码改善的157个建议【13-15】[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]...

C#程序编写高质量代码改善的157个建议【13-15】[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射] 前言  本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html。本文主要学习记录以下内...

2019-12-09 16:43:00 112

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除