C#语言
文章平均质量分 60
仰望星空的代码
专注Web前端和微信小程序开发。
展开
-
C#中泛型List的定义与用法以及常用函数
在C# 2.0中引进了一种重要的对象类型:泛型——List,它的引入使C#语言更加完善。引入泛型的好处是它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。定义:List类表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索、排序和操作的方法。List所属命名空间:System.Collect原创 2015-08-24 14:28:04 · 1800 阅读 · 0 评论 -
C#的多态
C#语言的三大特性是继承、封装、多态。继承和封装是相对比较好理解的两个概念,多态就不太容易理解了,不过,如果分清楚了多态的种类和在程序中具体的体现就会发现原来多态并不是很难。一、C#多态的分类多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。多态分为静态多态和动态多态。静态多态,函数的响应是发生在编译时;动态多态,函数的响应是发生在运行时。二、静原创 2017-05-10 10:12:38 · 2843 阅读 · 0 评论 -
动态设置控件属性的值
以下代码可以实现动态设置控件指定的属性的值。代码如下。/// /// 设置控件的属性的值 /// /// 控件类型 /// 属性值类型 /// 控件 /// 属性名 /// 属性值 public static void SetBehavior(Control co原创 2017-06-01 13:56:59 · 2791 阅读 · 2 评论 -
ADO.NET Entity Framework与ADO.NET的区别
两者的区别:1、采用EF进行开发只需要操作对象。使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想。ADO.NET以数据库为中心来开发数据访问层。2、采用EF减少了数据处理工作,可以简化程序开发,从而达到快速开发的目的。采用ADO.NET开发需要程序员编写SQL语句并处理数据与对象的转换,开发效率低。3、EF对内存消耗比较大,ADO.NET对内存消耗较小,EF性能不如ADO.N原创 2017-06-07 10:52:21 · 8699 阅读 · 3 评论 -
c#创建文件夹时无法访问路径,路径拒绝访问
一、问题在某个目录路径下创建文件夹及其子文件夹时,产生无法访问路径的错误或路径拒绝访问的错误。二、产生问题的原因程序在当前的目录下创建文件夹,对该目录的权限不够。三、解决方法修改该目录的everyone用户权限将权限提升至修改或完全控制。原创 2016-12-08 14:03:28 · 15246 阅读 · 0 评论 -
一个项目引用不同版本dll
问题描述一个项目引用不同版本的同一dll,会引发以下报错:未能加载文件或程序集“xxx, Version=x.x.x.x, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx”或它的某一个依赖项。系统找不到指定的文件 这里来解决项目中同一dll的多版本问题。解决方式通过配置web.config配置文件(app.config或web.conf转载 2017-06-13 10:27:28 · 17269 阅读 · 6 评论 -
WinForm窗体中ComboBox控件自定义高度和选项文本居中、选项高亮
WinForm窗体中的ComboBox控件是有TextBox控件和ListBox控件组合而成,其本身是不能自定义高度的只能根据字体的大小而自动生成高度。另外,选中后的选项文本在ComboBox中显示默认是依靠ComboBox的Top边和Left边来定位的而且不能更改。在项目中这样的设定是很不美观的。为了使ComboBox更加美观设计上要求可以自定义控件的高度和选中项文本的垂直居中和水平居中的。原创 2017-07-10 19:02:11 · 10673 阅读 · 0 评论 -
基于.NET平台常用的框架整理
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继续补充这篇日志,日积月累,就能形成一个自己的组件经验库。分布式缓存框架:Microsoft Velocity:微软自家分布式缓存服务框架。Memcahed:一套分转载 2017-09-15 16:50:50 · 740 阅读 · 2 评论 -
C#引用动态连接库dll时出现 System.MissingMethodException: 找不到方法的解决方案
一、问题描述桌面程序项目是一个答题器,其中一个单选项目引用了一个答题设备项目,很普通的一个解决方案中的多个项目之间的引用。软件的主工具条再批量加载各个项目的程序集dll文件。当对单选项目进行了编辑只重新生成单选项目后调试时报了找不到方法的错误。我很纳闷为什么会出现这个错误,因为项目的层次很简单,编译时也没有任何问题;但是就是调试时报错。二、解决方法不知道为什么报错,不明白报错的原因。于原创 2017-10-12 13:18:22 · 12947 阅读 · 1 评论 -
Win10上安装任意版本的.net framework
一、概述Win10系统自带的.net framework版本为4.7,当你下载了.net framework独立安装包想安装低于4.7版本的时候系统会提示已经安装了更高版本的.net framework,无法进行安装。然而,开发中或许需要低于4.7的版本。不过,在安装VS时会无障碍的安装VS版本对应的.net framework版本,但是,总不能一台机器上装上所有版本的VS吧。二、解决方案原创 2017-11-08 19:01:13 · 119211 阅读 · 20 评论 -
log4net使用方法
项目利用log4net来记录日志。一、引入log4net项目中引入log4net可以通过nuget引入,这种方式还是比较方便简单的,而且不用害怕某天log4net的程序集误删除。二、配置log4net如果不自定义配置,可以使用默认的log4net配置,如果自定义log4net配置可以以xml文件的形式来保存配置内容。自定义配置内容如下。<?xml version="1....原创 2017-06-05 12:00:56 · 1452 阅读 · 0 评论 -
C#序列化和反序列化Json字符串帮助类
该帮助类其实是基于Newtonsoft.Json的封装,这样项目中用到json字符串的序列化和反序列化时就不需要每一处都引用Newtonsoft.Json了而只是引用该帮助类所在的Common组件即可,这样不用在每个项目中添加Newtonsoft.Json的Nuget包只需要在Common组件中引用Newtonsoft.Json的Nuget包,方便了Nuget包的管理。using Syste...原创 2018-02-10 21:05:05 · 652 阅读 · 0 评论 -
获取指向任何给定类型的 Type 引用的 3 种常用方式
在C#中获取任何给定类型的Type引用有3种常用方式。获取类型的Type引用多用于反射中。三种方式如下:1、使用C#的typeof运算符。这个运算符的参数是类型的名称(但不放在引号中)。Person p = new Person();Type t = typeof(p);2、使用GetType()方法,所有的类都会从System.Object继承这个方法。Person p = new Perso...原创 2017-12-28 17:12:54 · 730 阅读 · 0 评论 -
C#操作文件帮助类FileHelper
删除文件、打开文件、创建文件、移动文件、复制文件以及删除、打开、创建、移动、复制文件夹等等操作集成在这个FileHelper中。using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Windows.Forms;namespace DocDecrypt.Co...原创 2018-02-10 21:00:08 · 5808 阅读 · 1 评论 -
关于C#操作Word时的版本问题
开发程序来对Word文档进行操作有多种方式实现,我利用的一种方式是通过MS office Word的API调用WINWORD程序。通过这种方式需要在项目中引用COM组件Microsoft.Office.Interop.Word.dll。这里有一个版本的问题。Microsoft.Office.Interop.Word的大版本有两个,一个是12.0.0.0,一个是15.0.0.0。12.0的对应Wor...原创 2018-02-27 10:30:41 · 2661 阅读 · 1 评论 -
根据枚举的key获取枚举
一、功能 通过枚举的key获取枚举二、代码 /// <summary> /// 根据枚举的key获取枚举 /// </summary> /// <param name="enumType">枚举的类型,示例:typeof(enum1)</param> /// <param n...原创 2018-09-18 14:34:52 · 4810 阅读 · 0 评论 -
C#中获取类的属性和属性值
通过遍历来获取类的属性和属性的值,具体实现是通过反射获取属性再根据属性获取其值。具体代码如下。/// /// 获取对象的属性和值 /// /// 对象 /// 返回属性与值一一对应的字典 public static Dictionary GetPropertyValue(T obj) {原创 2017-05-16 15:49:15 · 14052 阅读 · 0 评论 -
C#之Linq、where()、FindAll()的区别
对于实现了IEnumerable接口的类、类型、集合可以使用Linq、Linq的扩展方法where()、FindAll()来查询符合谓词约束的数据。这三者之间执行的方式是不一样的,同样的数据同样的查询条件返回的结果也不相同。先上代码再分析。public static void LaterSelect() { var names = new List {原创 2017-05-25 17:01:20 · 24080 阅读 · 0 评论 -
C#实现获取枚举的描述
一个通用获取枚举的描述的方法/// /// 获取枚举的描述 /// /// 枚举 /// 返回枚举的描述 public static string GetDescription(Enum en) { Type type = en.GetType(); //获取类型原创 2017-05-05 17:20:32 · 10293 阅读 · 3 评论 -
C# 判断文件夹存在与否并创建文件夹
protected void Button1_Click(object sender, EventArgs e) { if (Directory.Exists(Server.MapPath("~/upimg/hufu")) == false)//如果不存在就创建file文件夹 { Directory.CreateDirect原创 2016-05-11 09:11:03 · 9700 阅读 · 0 评论 -
跨数据库多表联合动态条件查询
[HttpGet] public ActionResult Search() { string whereText = ""; if (HttpContext.Request.QueryString["first"] != null) { whereText +=原创 2016-08-18 18:32:49 · 4027 阅读 · 0 评论 -
SqlServer与c#变量对应关系
SQL Server 2000 C#CodeSmith数据类型取值范围数据类型取值范围空值代替值数据类型bigint-2^63 (-9,223,372,036,854,775,807) 至 2^63-1 (9转载 2016-10-17 15:43:59 · 683 阅读 · 0 评论 -
C#语法糖(Csharp Syntactic sugar)大汇总
原文地址:http://www.cnblogs.com/yukaizhao/archive/2010/05/25/csharp-Syntactic-sugar.html首先需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。 1. 经过简化的Property 早些时候我们这样声转载 2016-10-27 09:19:51 · 883 阅读 · 0 评论 -
DataTable数据转换为List和泛型对构造函数带参数的类创建实例的方法
底层采用ADO.NET获取数据返回的数据类型为DataTable,把DataTable数据转换为类类型的泛型集合。在这过程中解决了采用泛型约束方式封装的方法中使用new关键字创建实例无法使用带参数的构造函数问题。实现代码如下:DataTable数据转换为List实现代码public class LoadDataHelper where T : class,new() {原创 2016-08-25 11:03:44 · 1043 阅读 · 0 评论 -
C# SQL语句参数化,通过包含like关键字的子句查询无结果问题
问题描述:SQL语句使用参数传递变量值,如果where子句中含有like关键字并使用sql的标准语法 like '%@parma%',则查询无数据或者报错解决办法:sql语句中like部分修改为 like @parma,在变量parma中加入%,parma = "%"+parma+"%"。原创 2016-05-11 17:32:30 · 4129 阅读 · 0 评论 -
C#接口在派生类和外部类中的调用
C#的接口通过interface关键字进行创建,在接口中可以包含属性,方法等成员变量。接口的派生类可以对接口中的方法进行实现。一个类可以继承多个接口对这些接口中的方法进行实现,一个接口也可以派生多个类接口中的方法可以由这些类中的一个或多个进行实现。在接口的派生类中可以直接调用接口中的方法。在派生类中调用举例://接口public interface IPersonalService {原创 2016-12-06 16:31:10 · 1982 阅读 · 0 评论 -
C#关键字partial在asp.net mvc中的应用
一、概念一个产品级别的类很容易达到成百上千行代码。一个类定义在一个*.CS文件中,这就将导致代码文件非常长。在创建类时,大多数代码在确立之后基本上就不再改变了。例如:字段数据、属性和构造函数在生产过程中很少变动,而方法却需要经常改变。这时,你可以将一个类分布到多个C#文件中,这样可以从样板代码中分离出有用的成员。要实现这种分离就需要用到C#的partial关键字。有partial关键字原创 2017-01-07 16:23:06 · 3084 阅读 · 0 评论 -
.NET/C#识别用户访问设备
一、需求需要获取到用户访问网站时使用的设备,根据不同设备返回不同类型的渲染页面。二、实现前准备下载UAParse组件,添加到项目中三、实现新建UAParseUserAgent类文件,在这个文件中进行实现。实现代码如下:public class UAParserUserAgent { private readonly static uap.Pars原创 2016-12-01 16:48:23 · 3076 阅读 · 0 评论 -
C#中类的属性的类型为接口时修饰符问题
一个类中定义的一个属性,如果属性的类型为某个接口,那么这个属性的权限修饰符必须为public,否则无法访问到已经封装好并已经实现的接口。原创 2016-10-24 15:52:36 · 1637 阅读 · 0 评论 -
C#char字符数组与字符串相互转换
一、字符串转换为字符数组char[] tempChar = sourceString.ToCharArray();二、字符数组转换为字符串//方法一string str = string.Join("", tempChar);//方法二string str = string.Concat(tempChar);//方法三string str = new string(tem原创 2017-01-19 11:08:46 · 10353 阅读 · 0 评论 -
C#使用指定的字符替换除首尾字符外的字符
方法中也提供了一种由字符数组转换为字符串的方法。/// /// 使用指定的字符替换除首尾字符外的字符串中的字符 /// /// 原字符串 /// 指定的字符 /// private static string ReplaceWithNewStr(string sourceString, char ch) { char[] tempChar = sourc原创 2017-01-19 10:50:21 · 1990 阅读 · 0 评论 -
DateTime.ToString()的各种日期格式及互转
DateTime.ToString()可以设置自己想要的各种日期格式,只要在ToString()中设置要显示的日期的显示格式即可。例:ToString:2016/5/2 0:00:00ToString("yyyy/MM/dd"):2016/05/02ToString("yyyy-MM-dd"):2016-05-02ToString("yyyy.MM.dd"):2016.05.0原创 2016-05-09 15:26:02 · 17667 阅读 · 0 评论 -
C#调用默认浏览器打开网页的几种方法
CSharp调用默认浏览器打开网页的几种方法示例界面:方法一:从注册表中读取默认浏览器可执行文件路径[csharp] view plain copyprivate void button1_Click(object sender, EventArgs e) { //从注册表中读取默认浏览器可执行转载 2017-05-24 13:21:35 · 4823 阅读 · 0 评论 -
C#实现序列化对象到XML文档与反序列化
实现直接把类的一个实例化对象序列化到XML文档以及从xml文档反序列化为类的对象。一、对象序列化为xml文档/// /// 序列化类到xml文档 /// /// 类 /// 类的对象 /// xml文档路径(包含文件名) /// 成功:true,失败:false privat原创 2017-05-05 13:22:14 · 6915 阅读 · 0 评论 -
根据枚举的value获取枚举
一、功能 根据枚举的value获取枚举二、代码 /// <summary> /// 根据枚举的value获取枚举 /// </summary> /// <param name="enumType">枚举的类型,示例:typeof(enum1)</param> /// &...原创 2018-09-18 15:35:56 · 8397 阅读 · 0 评论