C#
文章平均质量分 65
一枚努力的程序猿
磨刀不误砍柴工
展开
-
C#:解决方案、项目、类的组成,
.net平台和.netFramework.netFramework是.net平台不可或缺的工具,提供了稳定运行的环境,保证基于.net平台开发的各种应用能够正常的运转。桌面应用程序(Winform),Internet应用程序(ASP.net)交互模式C/S B/S (Client Server and Browser /Server)组成:program.cs :原创 2017-05-23 10:45:10 · 7009 阅读 · 0 评论 -
C# 选项、单选、多选、分组、MDI窗体的设计、PictureBox
控件多选框:checkBox1 : 是否被选中 属性 checked 单选框:RadioButton:checked 是否被选中容器:GroupBox:用来分组默认一个窗体中的单选框只能选一个,使用groupbox进行分组,在一个组中分别有一个单选TextAlign: 文本框中子的分布,靠左、靠右、居中MDI窗体:显示多个字窗体原创 2017-05-28 23:02:42 · 2287 阅读 · 0 评论 -
C#封装
C#封装封装被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。C# 封装根据具体的需要,设置使用者的访问权限,并通过访问修饰符来实现。一个访问修饰符定义了一个类成员的范围和可见性。C# 支持的...转载 2017-05-19 13:28:02 · 298 阅读 · 0 评论 -
C#数组学习
声明数组在 C# 中声明一个数组,您可以使用下面的语法:datatype[] arrayName;其中,datatype 用于指定被存储在数组中的元素的类型。[ ] 指定数组的秩(维度)。秩指定数组的大小。arrayName 指定数组的名称。例如:double[] balance;初始化数组声明一个数组不会在内转载 2017-05-19 15:31:06 · 404 阅读 · 2 评论 -
C#中的值传递
using System;namespace CalculatorApplication{ class NumberManipulator {// 值传递:这种方式复制参数的实际值给函数的形式参数,当调用一个方法时,会为每个值参数创建一个新的存储位置。实参和形参使用的是两个不同内存中的值。在这种情况下,当形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全转载 2017-05-19 14:49:43 · 706 阅读 · 0 评论 -
我的C#学习之出发
嗯,because somethings,I begin to learn C#,come on新建方法跟使用VS中C一样,只不过选择语言的时候选择C#;一个简单小例子:using System; // 包括System命名空间namespace HelloWorldApplication // 声明,一系列的类,HelloWorldApplication命名空间{原创 2017-05-19 10:44:01 · 271 阅读 · 0 评论 -
LINQ的学习
转载自http://www.cnblogs.com/liulun/archive/2013/02/26/2909985.html谢谢作者在说LINQ之前必须先说说几个重要的C#语言特性一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候,转载 2017-06-05 09:03:46 · 234 阅读 · 0 评论 -
C#迭代器的学习
关于迭代器的知识点总结:1.迭代器是可以返回相同类型值的有序序列的一段代码; 2.迭代器可用作方法、运算符或get访问器的代码体; 3.迭代器代码使用yield return语句依次返回每个元素,yield break将终止迭代; 4.可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端代码调用; 5.迭代器的返回类型必转载 2017-06-05 18:06:17 · 237 阅读 · 0 评论 -
bmp图片处理,好好分析
公式:图片像素×位深度÷8=位图大小(字节)2 BMP 是 Windows 位图可以用任何颜色深度(从黑白到 24 位颜色)存储单个光栅图像。Windows 位图文件格式与其他 Microsoft Windows 程序兼容。它不支持文件压缩,也不适用于 Web 页。优点:BMP 支持 1 位到 24 位颜色深度。色位即色彩位数,指每个像素点上颜色的数据位数(bit),有转载 2017-06-16 18:26:36 · 6393 阅读 · 0 评论 -
KeyUp、keyPress、keyDown的简单理解
对于处理各种普通字符来说,使用KeyPress事件进行判断再好不过了。 但KeyPress有其自身的局限性。它不能捕捉功能键的按键事件,如:F1——F12,shift,Ctrl,Alt,Tab,方向键,以及Insert,Home ,print等。 需要对这些按键事件进行处理的时候,请使用KeyDown或KeyUP事件。 当然,KeyDown或KeyUP事件 也可以对各种字符进行处理转载 2017-06-16 18:23:39 · 1201 阅读 · 0 评论 -
C# 字符串string的使用
字符串学习字符串的重要特性:不可变性;属性:length(): 获得字符串中字符的个数方法:1、IsNullOrEmpty: 判断字符串为null或""; string str="";bool b = string.IsNullOrEmpty(str);2、可以通过下标访问字符串:char ch=str[0];返回的是char类型3、ToCharArray()原创 2017-05-31 19:49:17 · 816 阅读 · 0 评论 -
VS的调试:winform中查看控制台输出、查看字符存储位置
1 winform中的,不能像控制台一样正常在输出窗口(console.writeline(s1))中查看结果,可以 启动(F5),调试--窗口---输出,在下面的输出中就可以看到打印的字符;2 在程序中查看字符设置断点,查看两个字符的存储位置,点击运行,在输出中的 监视 窗口中,输入&+要查看的变量,比如&s1,即可查看字符的位置 从图中可以看出,堆中相同的字符存储位置相同。原创 2017-06-16 23:31:08 · 4916 阅读 · 0 评论 -
C#枚举、类、多态、接口
枚举enum day {Mon, Tus,Wen,Thr,Fri,Sat,Sun };int Weekdaystart=(int)day.Mon;类对象是类的实例。构成类的方法和变量成为类的成员。当你定义一个类时,你定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么转载 2017-05-22 10:01:20 · 628 阅读 · 0 评论 -
C#值类型与引用类型、 out 、 ref、 params 参数、函数重载、数组为函数参数或返回值
1、 在C#中方法是将一堆代码进行重用的一种机制;若调用类中的方法时,若类与Main()函数在一个类中是,类名可以省略,若不在一个类中,类名不可以省略;2 、 返回值为数组的函数public static int [ ] GetNumbers ( int [ ] num){int [ ] res=new int [ 4 ]; res={ 1,2,3,4 };ret原创 2017-05-25 17:33:43 · 1294 阅读 · 2 评论 -
C# 事件学习
namespace EventLearn{ class Program { static void Main(string[] args) { // MainEntryPoint even = new MainEntryPoint(); EventLearn.MainEntryPoint.Start()转载 2017-06-06 16:46:13 · 268 阅读 · 0 评论 -
C#事件的学习(1)
事件转载 2017-06-06 16:30:41 · 325 阅读 · 1 评论 -
C#命名空间、预处理指令
命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式。在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。命名空间的定义是以关键字 namespace 开始,后跟命名空间的名称,如下所示:namespace namespace_name{ // 代码声明}为了调用支持命名空间版本的函数或变量,会把命名空间的名称置于前面,如下所示:转载 2017-05-22 14:19:51 · 358 阅读 · 0 评论 -
C#事件学习3
namespace Eventlearn{ public delegate void MessageHandler(string messageText); public class Program { static void Main() { Connection myConnection=new C转载 2017-06-06 18:23:34 · 255 阅读 · 0 评论 -
C# Winform单例模式、程序集
程序集:当写完程序后,生成的exe就是一个程序集,.dll文件也是一个程序集,但是不包括main函数,所以不能运行;但是exe文件可以运行。添加一个程序集的话,就是添加---类库,只包含类,不能运行。一般我们使用.dll文件来封装常用的功能。类库可以编译,不能运行。程序集的引用;先在要添加的项目中添加程序集的引用,然后再加using+程序集的命名空间;生成的exe文件的同一目录下也原创 2017-06-19 09:04:36 · 930 阅读 · 0 评论 -
Factory Method模式角色与结构
C#工厂设计模式工厂方法模式之所以可以解决简单工厂的模式,是因为它的实现把具体产品的创建推迟到子类中,此时工厂类不再负责所有产品的创建,而只是给出具体工厂必须实现的接口,这样工厂方法模式就可以允许系统不修改工厂类逻辑的情况下来添加新产品,这样也就克服了简单工厂模式中缺点。namespace Eventlearn{ class Program { pu原创 2017-06-07 13:46:41 · 276 阅读 · 0 评论 -
C# HTML
HTML:Hype Text Makeup Language:超级文本标记语言HTML 当中存在着大量的标签,我们用HTML提供的标签,将要显示的在网页中的内容包含起来,就构成了我们的网页。CSS 控制网页内容显示的效果静态网页:HTML+CSS动态网页:Js+Jqueryhello,world! //段落标签today is原创 2017-05-30 07:52:16 · 455 阅读 · 0 评论 -
C# 接口的特点、接口的作用、接口的简单应用
使用接口的目的就是实现面向对象的多态。接口用来描述一种行为。对于继承父类与接口的类(前提是接口实现是普通实现而非显示实现),在实现的时候还是先实现自己类的方法;若接口为显示实现时,实现方法为接口的方法。总结:1、接口存在的意义是为了实现多态;2、接口中只能包含方法(属性、事件、索引);3、接口的成员不能有任何实现;(类似于抽象类)4、接口不能被实例化;静态类、抽象类也不原创 2017-05-31 17:18:35 · 3890 阅读 · 0 评论 -
C# 复习抽象类的使用,模拟移动设备的读写
Program1:namespace what{ class Program { static void Main(string[] args) { Ustorage us = new Ustorage(); MPstorage mp = new MPstorage();原创 2017-05-31 16:14:20 · 382 阅读 · 0 评论 -
C#的主要 关键字 new、sealed、partial、interface、virtual、abstract、this、base、override、return、break、continue...
关键字:new:创建对象;隐藏父类的成员。sealed:密封类partial:部分类interface:接口virtual:标记虚方法abstract:抽象this:指当前类的对象;调用自己的构造函数base:调用父类的成员override:重写return:在方法中返回值;立即结束本次方法break:跳出循环continue:结束本次循环,回到循环原创 2017-05-31 15:28:00 · 996 阅读 · 0 评论 -
C# 面向对象:类、根据不同操作符操作两个变量
类1、当使用类使,应添加一个新类2、类名首字母需大写3、字段用来存储数据,private;属性用来保护字段;接口、构造函数、方法 public struct1{// 自动属性:虽然没有写字段,但是还是会生成字段 get; set; }4、类写好后,需要创建对象: Classes cl=new Class原创 2017-05-31 11:17:41 · 598 阅读 · 0 评论 -
C# 打开文件:抽象类继承、父类继承的联系:多个类型文件的打开操作
打开文件,根据用户输入的类型打开//纯粹是为了练习,单纯打开文件不需要判断类型,进一步操作需要考虑。1、打开固定类型文件 // 使用进程打开一个文件 // 提示用户输入路径,然后进行打开文件操作 Console.WriteLine("请输入要打开的磁盘"); st原创 2017-05-31 09:48:20 · 541 阅读 · 0 评论 -
C# GDI+ 画简单的图形:直线、矩形、扇形等
GDI+是一种绘图装置接口, 当拖动窗体是,窗体发生移动,window默认为从窗体移动到另一个地方,先发生擦除后再重新画一个窗体;而我们自己动手画的图(如下面的线),不会重新画;在属性中,Paint,中,将画图的程序重新写一遍就可实现重画。画一条线 private void button1_Click(object sender, EventArgs e)原创 2017-05-30 00:44:10 · 12415 阅读 · 0 评论 -
C# socket通信 模拟服务器端、客户端
项目名---右键-----调试-------启动新实例(实现开启多个项目)socket用户描述IP地址和端口,是一个通信链的句柄。将远程连接的客户端的IP地址和Socket存入Dirtionary中,用来实现服务器与多个客户端通信Telnet一个本地连接的服务器,打开连接:win+R; cmd telnet 192.168.22.22+端口号模拟服务器与客户端的通信so原创 2017-05-29 18:32:16 · 1751 阅读 · 0 评论 -
C# new的用法
new的一个作用:创建对象;new的另一个作用:隐藏从父类继承的同名成员 。 public class father { public void add() { } } public class son1 : father { public void add()//这原创 2017-05-31 16:33:31 · 1192 阅读 · 0 评论 -
DragEnter、DragOver、DragDrop、leave、回车实现、事件的简单使用
窗体的AllowDrop属性必须设置成true;且必须有DragEnter事件(单独写DragDrop事件是不会具有拖拽功能的)1:DragEnter是你拖动后首次在进入某个控件内发生。2:DragOver发生在DragEnter之后,当你移动拖动对象(鼠标)时发生,类似于MouseMove。3:DragDrop当你松开鼠标时发生。 private v转载 2017-06-16 18:41:06 · 18360 阅读 · 0 评论 -
查表法添加CRC
直接利用已有的方法计算即可!! public static class CRC16_CCITT { static ushort[] crc16tab = new ushort[256]{ 0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7, 0x8108,0x9129,转载 2017-06-09 14:47:57 · 546 阅读 · 0 评论 -
C#将数据导入到excel表格中
C#写excel表格相对来说比较容易public static bool DataTableToExcel(DataTable dt) { bool result = false; IWorkbook workbook = null; //保存的数据 FileStream fs =转载 2017-06-30 18:40:07 · 4198 阅读 · 1 评论 -
将一个字节中的数据(16进制),转为有符号的十进制数
将一个字节中的数据(16进制),转为有符号的十进制数result=byteRecvData[1] if (byteRecvData[11]>>7==0x01) { result =result-65536; }得到result原创 2017-06-30 18:43:03 · 7945 阅读 · 2 评论 -
To.String("X2")、 list的skip、take的用法
ToString()的用法简单总结1、byte--->string [byte].ToString("X2");X代表16进制,转化后的数据以16进制的形式显示,2代表以两位数对齐,1个字节 [byte].ToString("X"); byte bb = 9; Console.WriteLine原创 2017-06-09 17:15:15 · 1939 阅读 · 0 评论 -
C#:注释、快捷键、转义字符、字符和字符串、变量命名规则、连接符和占位符、输入值存在string中、ToString
简单总结一点平时很常见的知识点:1 注释: 单行注释// ;多行注释 /* */ ;文档注释 ///文档注释:多用于解释类或者方法/// /// 注释 /// 2 快捷键ctrl+K+D: 快速对齐代码ctrl+J: 快速弹出智能指示ctrl+K+C: 注释所选代码ctrl+K+U: 取消对所选代码的注释折叠冗余代原创 2017-05-23 16:08:22 · 1777 阅读 · 0 评论 -
项目完成后完成版本更改,调试
1 在项目名,属性,程序集名称里面更改下版本号2 在mainform()中,更改名称上的版本号,mainform.text="项目名称 V3.31"3 注意方法的命名方式,取名的意义4 在项目名,右键:查看文件所在的文件夹,找到.exe文件;4 将程序重新编译,生成.exe文件:压缩; (发送给需要的人,再解压)VS的快捷键:F12调到方法中; ctrl+-:返回上一次操作调试:打断点、F5运行,运行到断点,逐步运行,查看变量值是否正确,查看步骤:哪部有问题。原创 2017-06-13 11:22:19 · 334 阅读 · 0 评论 -
C#添加属性快捷键、类和对象
封装属性的快捷键:ctrl+R+E :弹出封装好的属性自动属性快捷键:输入prop+tab+tab 先有类,再创建对象,类决定了对象将要拥有的属性和行为;对象是具体实例,类是创建对象的模具,是抽象的。类是一种数据类型,用户自定义的数据类型this,当前类的对象,base,对象是引用类型;base()调用父类的成员: base.ToStr(); //调用父类的成员方法原创 2017-06-10 08:09:24 · 15026 阅读 · 0 评论 -
动态链接库、互斥体、静态变量、添加动态链接引用
来自百度百科:概述编辑动态链接(Dynamic Link Library)提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 文件中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。使用动态链接库可以更为容易地将更新应用于各个转载 2017-06-06 10:40:05 · 901 阅读 · 0 评论 -
C#新建数组
int[] num = { 1,2,3,4,5,6,7}; int [] num1=new int[10]; num1[2] = 9;转载 2017-06-05 18:06:42 · 7283 阅读 · 0 评论 -
dataTable和excel的转换
转自http://www.cnblogs.com/mora1988/p/5715097.html将excel文件内容读取到datatable数据表中,支持97-2003和2007两种版本的excel添加NPOI的.dll程序集引用,下载自http://npoi.codeplex.com/releases1.第一种是根据excel文件路径读取excel并返回datatable /转载 2017-07-07 13:43:16 · 419 阅读 · 1 评论