
C#
干到60岁退休的码农
这个作者很懒,什么都没留下…
展开
-
值类型和引用类型间的转换-装箱和拆箱
装箱(Boxing)和拆箱(Unboxing)是C#类型系统中重要的概念。它允许将任何类型的数据转换为对象,同时也允许任何类型的对象转换到与之兼容的数据类型。1.装箱装箱转换是指将一个值类型的数据隐式地转换成一个对象类型(object)的数据。例如:int i=20;object o=i;2.拆箱拆箱转换是一个与装箱转换相反的操作,拆箱用于把object类型转换为数值类型原创 2016-05-16 13:45:14 · 2552 阅读 · 1 评论 -
C#多线程编程
一、使用线程的理由1、可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。2、可以使用线程来简化编码。3、可以使用线程来实现并发执行。二、基本知识1、进程与线程:进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源。2、前台线程和后台线程:通过Thread类新建线程默认为前台线程。当所有前台线程关闭时,所有的后台线程也会被直接终止,不会抛出异转载 2017-06-09 10:26:55 · 454 阅读 · 0 评论 -
C# LINQ to XML
LINQ to XML 为创建 XML 元素提供了一种称为“函数构造”的有效方式。函数构造是指在单个语句中创建 XML 树的能力。 启用函数构造的 LINQ to XML 编程接口有几个重要功能: XElement 构造函数可以对内容采用多种类型的参数。 例如,可以传递另一个 XElement 对象,该对象将成为一个子元素。 可以传递一个 XAttribute 对象,该对象将成转载 2017-06-12 14:54:20 · 673 阅读 · 0 评论 -
C# 委托和事件
今天刚好学习到unity中easytouch控件(呆会还要写一个文章),又碰到了委托和事件这个我不懂的概念,所以学习一下,这里主要通过实例的讲解,我会再查书去看相关知识。委托给了C#操作函数的灵活性,我们可使用委托像操作变量一样来操作函数,其实这个功能并不是C#的首创,早在C++时代就有函数指针这一说法,而在我看来委托就是C#的函数指针,首先先简要地介绍一下委托的基本知识:委托的定义委原创 2016-05-13 12:16:11 · 584 阅读 · 0 评论 -
C# TCP/IP网络编程
在开始介绍socket前先补充补充基础知识。 TCP/IP:Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议,又名网络通讯协议。简单来说:TCP控制传输数据,负责发现传输的问题,一旦有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地,而IP是负责给因特网中的每一台电脑定义一个地址,以便传输。从协议分层模型方原创 2017-06-15 11:00:04 · 1785 阅读 · 0 评论 -
C# 笔试题
.NET和C#有什么区别 答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。 C#是一种编程语言,可以基于.NET平台的应用。一列数的规则如下: 1、1、2、3、5、8、13、21、34…… 求第30位数是多少,用递归算法实现。 答:public class MainClass { public static void Main() {原创 2017-02-09 22:30:55 · 1856 阅读 · 0 评论 -
log4net(C#) 配置及使用
首先从apache网站下载log4net, http://logging.apache.org/log4net/download_log4net.cgi 。我下的是最新版本 。将 \bin\net\4.0\release\log4net.dll 复制到你的项目中 。将log4net.dll 添加引用到你的项目中。添加如下内容到 assemblyinfo.cs。[assembly: log4n原创 2017-12-04 09:05:22 · 738 阅读 · 0 评论 -
C# 遍历文件夹 删除过期图片
/// <summary> /// 删除过期的保存图片 /// </summary> public void DeleteOTImg(string path) { try { DirectoryInfo theFolder = new DirectoryIn原创 2017-11-09 10:51:21 · 2136 阅读 · 2 评论 -
C# Log4Net配置
1.首先在项目中添加Nuget程序包 2.然后在NuGet窗体中搜索Log4Net,然后点击安装<安装过程可能会持续几分钟,请耐心等待> 3.在项目中添加一个Log4Net.Config文件,如已有App.config,则直接在其中添加内容:<?xml version="1.0" encoding="utf-8" ?><configuration...原创 2018-04-16 21:01:35 · 911 阅读 · 0 评论 -
C#检查图片是否空白图片
/// <summary> /// 检查图片是否空白图片 /// </summary> /// <param name="img">Image</param> /// <returns>是否空白图片</returns> private bool C...原创 2019-05-16 10:51:15 · 2523 阅读 · 0 评论 -
C#计算MD5结果不一致
字符串计算MD5算法: /// <summary> /// 计算MD5 /// </summary> /// <param name="strDataIn">明文</param> /// <returns>密文</returns> public...原创 2019-05-13 16:16:32 · 2016 阅读 · 0 评论 -
C# 合并多张图片
将多张图片按照行列合并成一张图片,效果如下图:原创 2019-09-19 09:22:02 · 1882 阅读 · 0 评论 -
C# 加密方法
DES加解密 DES一共就有4个参数参与运作:明文、密文、密钥、向量。其中这4者的关系可以理解为: 密文=明文+密钥+向量; 明文=密文-密钥-向量; 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复,那么这个词加上密钥形成的密文,仍然会重复,这给破解者有机可乘,破解者可以根据重复的内容,猜出是什么词,然而一旦猜对这个词,那么,他就能算出密钥,整篇文章就被破解了!加上原创 2017-06-06 09:30:21 · 856 阅读 · 0 评论 -
C# 委托实现多线程调用窗体
1.方法一:使用线程 功能描述:在用C#做WinFrom开发的过程中。我们经常需要用到进度条(ProgressBar)用于显示进度信息。这时候我们可能就需要用到多线程,如果不采用多线程控制进度条,窗口很容易假死(无法适时看到进度信息)。下面我就简单结合一个我写的例子给大家做一个介绍。 控件名称分别为:progressBar1;label1;richTextBox1;button1; 实现代原创 2017-06-17 19:43:39 · 3434 阅读 · 0 评论 -
C# Hashtable类
Hashtable称为哈希表。Hashtable封装了一个键(key)/值(value)对的集合,键/值对是根据键的哈希代码进行组织的(一个对象的哈希代码可以通过IHashCodeProvider接口来获得)。它的每个元素都是一个存储在字典实体对象中的键/值对。其中key通常可用来快速查找,同时key是区分大小的。value用于存储对应key的值。Hashtable中key/value键/值对均为原创 2016-05-16 15:40:38 · 1011 阅读 · 0 评论 -
C# 抽象方法和抽象类
在C#中,用abstract修饰符来表示抽象类,即类是不完整的,使用时需要注意一下三点:(1)抽象类只能用作基类,也就是说抽象类不能直接实例化,对抽象类使用new运算符时编译时会出现错误。(2)抽象类中可以定义抽象方法(用abstract修饰),所谓抽象方法就是只有声明而无具体任何具体实现的细节方法。(3)抽象类中允许(不限制必须)一个或者多个定义抽象方法或抽象属性。但若抽象类中有抽象原创 2016-05-16 20:42:58 · 632 阅读 · 0 评论 -
序列化和反序列化
1、序列化序列化是将对象状态转换为可保持或传输的格式的过程,比如转化为二进制、xml、json等的过程。2、反序列化与序列化相对的是反序列化,它将流转换为对象,也就是将序列化过程中所生成的二进制串、xml、json等转换成数据结构或者对象的过程。 这两个过程结合起来,可以轻松地存储、传输数据。3、序列化和反序列化的用途主要用于跨进程生命周期保存对象,比如远程传输对象或者app关闭期间保存对象等。原创 2016-05-17 11:54:51 · 450 阅读 · 0 评论 -
SQL面试题-查询课程
题目: 成绩表(Grade),包含字段:GradeID(Int,自增), SNO(int, 学号), CNO(int, 课程号), Score(float,分数) 查询每门课程的平均(最高/最低)分及课程号; 查询每门课程第1名的学生的学号; 查询每门课程中超过平均分的所有学生的学号等等; 解答: 创建表:Create Table Grade( Gr原创 2017-02-08 21:41:35 · 805 阅读 · 0 评论 -
求函数f(n)=1/1!+1/2!+1/3!+...+1/n!的值
public Double Solution(int n){ Dounle ret = 0; for(int i = 1;i <= n;i++) { int dishu = 1; for(int j = 1;j <= n;j++) { dishu *= j; } ret原创 2017-02-08 20:47:17 · 2883 阅读 · 0 评论 -
WPF DatePicker自定义时间格式
txtBrithday.Text = Convert.ToDateTime(teBrithday.Text).ToString("yyyy-MM-dd");teBrithday为日历控件DatePicker。 解决windows系统因为日期格式显示导致程序转换出错的问题: 因为windows系统日期格式设置显示了日期,会导致DatePicker显示方式与系统日历日期格式相同。 因为原创 2017-02-16 10:17:37 · 12845 阅读 · 0 评论 -
C# 数据库操作封装
1.数据库封装接口using System;using System.Data;namespace DBClass{ public interface IDBfun : IDisposable { string ConnectionString { get; set; } void SetDBConnectionPararmeter(string s原创 2017-04-24 11:40:51 · 7960 阅读 · 8 评论 -
C# DevExpress TabPane
DevExpress TabPane能够快速简单地实现了Tab窗口的功能,相对XtraTabControl来说功能较为简单,也能够更快实现功能。1.添加TabPane控件 将它拖到form即可。2.实现效果 在Pane面板上进行操作即可。 修改Tab标签名: 选择SelectedPage,修改对应的Caption即可。原创 2017-04-18 10:34:51 · 6548 阅读 · 0 评论 -
C# DevExpress GridControl导出表格
DevExpress的GridControl提供方便的数据导出功能,可以方便的导出Exce,PDF,Html页面,world形式,无需写额外的代码,方便、快捷。/// <summary> /// 导出表格 /// </summary> /// <param name="gridControl1"></param> public原创 2017-04-17 16:08:58 · 2456 阅读 · 0 评论 -
C# winform DevExpress上传图片
实现功能如下图: 注明:此文使用的是DevExpress控件,winform 原生控件也是一样使用方法。1.点击选择图片按钮,功能为通过对话框选择要上传的文件,并将该文件在下面的PictureEdit中显示出来。具体代码如下:private void btnChoosePic_Click(object sender, EventArgs e) { Sho原创 2017-04-17 14:50:59 · 4350 阅读 · 5 评论 -
C#连接SQLServer数据库
public string GetData() { try { SqlConnection sqlConnection = new SqlConnection( "Data Source=127.0.0.1;Initi原创 2017-06-05 10:34:06 · 903 阅读 · 0 评论 -
C# 墨卡托投影坐标与WGS84坐标转换
C# 墨卡托投影坐标与WGS84坐标转换原创 2019-09-19 15:53:15 · 1264 阅读 · 0 评论