C#
文章平均质量分 90
xiaoxie_advent
供应链系统及大数据系统规划及建设
展开
-
通过C#程序模拟控制另一个Windows桌程序实例
如何通过C#程序控制另一个程序涉及到的知识点 如何通过C#程序读取Excel中内容,并加载到DataGridView中 如何通过C#程序下载DataGridView中的内容并保存到Excel文件中 如何通过C#程序读取到另一个程序的句柄 如何通过C#程序向另一个程序发送指定的指令 需求:向一个程序中指定的控制录入信息,点击指定的按钮则可以执行指定的操作,当程序处理完成后会弹出对应的对话框,接下来关闭弹出提示对话框,再进入下一次的操作,这个操作过程固..原创 2021-02-22 23:10:20 · 2616 阅读 · 0 评论 -
C#每日一课(二十九)
C#索引器索引器(Indexer)允许一个对象可以像数组一样被索引。当为一个类定义了一个索引器后,这个类就会像一个虚拟数组一样,可以使用数组访问运算符[]来访问类的实例。一维索引器的语法element-type this[int index]{ //get访问器 get { //返回index指定值 } //set访问器 set { //设置index指定值 }...原创 2018-11-21 09:31:37 · 177 阅读 · 0 评论 -
C#每日一课(二十八)
C#属性属性 Property,是类、结构、接口的命名成员。类或结构中的成员变量或方法称为域(Field)。属性则是域的扩展,可以使用相同的语法进行访问。使用访问器(accessors)可以让私有域的值被读写或操作。属性不会确定存储位置,具有可读写或计算它们值的访问器。访问器(Accessors)属性的访问器(accessors)包含有助于获取(读取或计算)或设置(写入)属性的可执行...原创 2018-11-14 13:34:53 · 169 阅读 · 0 评论 -
C#每日一课(二十六)
C#特性Attribute特性(Attribute),是用于在运行时传递程序中各种元素(如:类、方法、结构、枚举、组件……)的行为信息的声明性标签。一个声明性标签通过放置在它所应用的元素前面,使用[]来描述对于特性分为两种:预定义特性、自定义特性语法 如下:[attribute(positional_parameters,name_parameter = value,……)]eleme...原创 2018-11-12 13:28:24 · 236 阅读 · 0 评论 -
C#每日一课(二十七)
C#反射反射(Reflection)对象有用于在运行时获取类型信息。这个类位于System.Reflection命名空间中,可以访问一个正在运行的程序的元数据。反射(Reflection)的用途如下:1.可以在运行时查看属性(Attribute)信息2.可以审查集合中的各种类型,以及实例化这些类型3.可以延迟绑定的方法和属性4.可以运行时创建新类型,然后使用这些类型执行一些任务查...原创 2018-11-13 15:12:00 · 219 阅读 · 0 评论 -
C#每日一课(二十五)
C#文件输入输出文件是一个存储在磁盘中带有指定名称和目录路径的数据集合。当用程序打开文件进行读写时,它就变成了一个流。流流,通过通信路径传递的字节序列有两个主要的流:输入流、输出流输入流:用于从文件中读取数据(读操作),输入到程序当中输出流:用于向文件写数据(写操作),从程序输出到文件C#中的I/O类System.IO命名空间中有各种不同的类,分别用于执行文件操作B...原创 2018-11-05 15:12:31 · 491 阅读 · 0 评论 -
C#每日一课(二十二)
C#预处理器指令预处理器指令指定编译器开始之前对信息进行预先处理。所有的预处理器指令都是以#开头的,并且在第一行上定义,只有空白符可以出现在预处理器指令之前,预处理器不是语句,所以它不是以;结尾。在C#中预处理器指令用于在条件编译中起作用。C#预处理器指令1.#define:用于定义一系列成为符号的字符2.#undef:用于取消定义符号3.#if:用于测试符号是否为真4.#el...原创 2018-11-02 14:56:26 · 218 阅读 · 0 评论 -
C#每日一课(二十四)
C#异常处理C#的异常是指在程序运行时出现的特殊情况。异常处理则是对出现异常情况的的处理方式,把程序当前的控制权从某个部分转移到另一个部分方式。C#异常处理需要注意如下四个关键字try,catch,finally,throwtrytry块标识了一个将被激活的特定异常的代码块,其后跟一个或多个catch块catch程序通过异常处理来捕获异常,catch中指定了要捕获的异常...原创 2018-11-04 12:42:15 · 194 阅读 · 0 评论 -
C#每日一课(二十三)
C#正则表达式正则表达式就是使用一系列特殊字符模式,来表示某一类字符串。.NET中提供了Regex类实现了验证正则表达式的方法。Regex类中包含静态方法,则可以在不对类进行实例化的情况下使用正则表达式中方法。正则表达式相关模式说明模式说明\转义字符,把一个具有特殊功能的字符转义为一个普通字符,或者是使用\加上普通字符表示特殊功能^匹配输入字符串的开始位置...原创 2018-11-03 20:14:47 · 197 阅读 · 0 评论 -
C#每日一课(三十)
C#委托 DelegateC#中的委托类似于C或C++中的函数指针,它是存有对某个方法的引用的引用类型变量,引用可在运行时被改变。委托都派生自System.Delegate类声明委托委托声明决定了可由该委托引用的方法。声明委托的语法:delegate <delegate_name>();比如有一个委托如下:public delegate int MyDelegat...原创 2018-11-21 16:36:43 · 201 阅读 · 0 评论 -
C#每日一课(三十三)
C#泛型泛型Generic,允许延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用的时候。可以通过数据类型的替代参数编写类或方法的规范。当编译器遇到类的构造函数或方法的函数调用时,它会成生代码来处理指定的数据类型。泛型类使用Visual Studio新建C#控制台应用程序chapter24_0011.新建一个泛型数组类//定义一个泛型类 public cla...原创 2018-11-23 16:26:43 · 287 阅读 · 0 评论 -
C#每日一课(三十九)
LINQ to SQLLINQ to SQL提供了一种把关系型数据库映射到编程语言表示的对象模型,使用得开发人员可以通过编程语言直接操作数据库,数据库的访问由此变得更加快捷和高效。对象模型的原理与LINQ to DataSet一样它也是ADO.NET和LINQ结合的产物。它把编程对象和数据库关系模型直接映射,比LINQ to DataSet更进一步。在LINQ to SQL中,开发人员不...原创 2018-12-22 16:14:24 · 630 阅读 · 0 评论 -
C#每日一课(三十七)
LINQ查询方法LINQ中,数据源和查询结果实际上都是IEnumerable或IQueryable类型的对象,所以可以像使用普通对象一样使用调用方法,使用属性等对数据源进行查询和使用其结果数据。IEnumerable接口这个泛型接口支持在指定数据集合上进行迭代操作。它定义了一些扩展的方法,用来对数据集合中的元素进行遍历、过滤、排序、搜索、定位等相关操作。在 LINQ 中,数据源实际上是...原创 2018-11-28 16:17:07 · 329 阅读 · 0 评论 -
C#每日一课(三十六)
LINQ基础知识LINQ是微软.NET Framework 4.5提出的特征之一。它为开发人员提供了统一的数据查询模式,并且与.NET开发语言集成,很大程度上简化了数据查询的编程调试工作,提高了数据处理的性能。LINQ是什么?通常来说,针对数据的查询是用简单的字符串文本来编写的查询语句,如:SQL查询语句,没有编译时的类型检查,在安全性和方便性上都不是很友好。同样的对于不同的数据源需要使用...原创 2018-11-27 11:22:42 · 264 阅读 · 3 评论 -
C#每日一课(三十八)
LINQ to ADO.NET它包含 LINQ to DataSet和LINQ to SQL两个相关技术。LINQ to DataSet:提供对DataSet、DataTable进行查询LINQ to SQL:通过LINQ对象模型直接与数据库进行数据交互LINQ to DataSet概述DataSet是ADO.NET进行无连接模式数据库访问的关键.1.缓存不同数据源中的数据2.表示...原创 2018-12-04 16:55:11 · 756 阅读 · 0 评论 -
C#每日一课(三十五)
面向对象编程概述面向对象编程(OOP),是把现实中的事物进行抽象化,其设计的重点就是对类进行设计。什么是类和对象类,它实际上是一种复杂的数据类型,在这个复杂的类型当中有数据和与这些数据相关的操作封装在一起。对象,就是在有了类之后对这些抽象化的类进行具体化,就行成了对象,也就是说对象是指类的实例。比如:学生,它是一个抽象的类,具体到某个人如:张三,他就是一个对象。如下例,创建一个学生类S...原创 2018-11-24 22:00:13 · 214 阅读 · 0 评论 -
C#每日一课(三十二)
C#集合集合Collection类,它是专用于数据存储和检索的类。提供了对 stack(栈)、queue(队列)、list(列表)、hash table(哈希表)的支持集合类都在命名空间System.Collection中各个集合类:1.ArrayList它代表了可被单独索引的对象的有序集合。可以替代数组,与数组不同的是,可以使用索引在指定的位置添加和移除项目,它是一个动态数组,会自...原创 2018-11-22 17:09:01 · 313 阅读 · 0 评论 -
C#每日一课(三十四)
C#多线程线程,被定义为程序的执行路径,每个线程都定主了一个独特的控制流。如果程序涉及到复杂和耗时的操作,那么把它们使用多线程来处理是可以提高执行效率的。线程的生命周期初始状态:未启动状态,当线程实例被创建但Start方法未被调用时的状态就绪状态:当线程准备好运行并等待CPU周期时的状态不可运行状态:有如下几种情况是不可运行的1.已经调用Sleep方法2.已经调用Wait方法3...原创 2018-11-23 23:45:11 · 178 阅读 · 0 评论 -
C#每日一课(三十一)
c#事件事件(Event),可以说是一个用户的操作,比如用户点击了鼠标,按了键盘……,或者是出现一些系统上的通知,应用程序需要在事件发生的时候对这些事件做响应。事件的发布-订阅模型事件在类中声明且生成,且通过使用同一个类或其他类当中的委托与件处理程序关联。其中包含事件的类用于发布事件,称为发布器(publisher)类其他接受事件的类称为订阅器(subscriber)类声明事件...原创 2018-11-22 10:30:38 · 163 阅读 · 0 评论 -
C#每日一课(二十一)
C#命名空间命名空间的目的是为了提供一种把一组名称与其他名称进行分隔的方式,保证在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。命名空间定义命名空间的定义是以关键字namespace开始,后跟命名空间的名称namespace namespace_name{ //代码}为了调用支持命名空间的函数或变量,会把命名空间的名称置于前面namespace_...原创 2018-11-01 20:07:25 · 183 阅读 · 0 评论 -
C#每日一课(二十)
C#接口接口定义了所有类继承时需要遵守的规则,接口定义的是这个规则是什么,派生类则定义出这个规则怎么做。接口只能包含成员的声明,成员的定义需要由派生类来进行实现。抽象类与接口类似,但是它更适用于只有部分方法需要由派生类实现时。声明接口接口声明使用interface关键字声明,与类的声明相似,默认为public的,其中的方法都只做声明无具体的实现如:public inter...原创 2018-11-01 10:59:32 · 157 阅读 · 0 评论 -
C#每日一课(九)
C#循环有时候程序需要,多次执行同一块代码,则需要使用到循环代码结构,但是要注意的就是一定要保证循环有明确的退出条件。C#中提供了如下几种循环类型:while循环只要是给定的条件为真的时候,C#中的while循环语句会重复执行循环语句块语法while(condition){//需要循环执行的语句块statement(s);}当条件为真时执行循环,为假...原创 2018-09-02 17:11:36 · 230 阅读 · 0 评论 -
C#每日一课(八)
C#判断结构判断结构是根据一个或多个要评估或测试的条件,以及条件为真时要执行的语句和条件为假时要执行的语句一般来说执行的流程如下:C#中提供的判断语句有如下if语句由一个布尔表达式后跟一个或多个语句组成语法:if(boolean_expr){//此处为布尔表达式为真的时候要执行的语句}当boolean_expr为true的时候,if语句内的代码块会被执...原创 2018-08-29 00:09:20 · 261 阅读 · 0 评论 -
C#每日一课(五)
C#变量一个变量只不过是一个供程序操作的存储区名字。在C#中,每一个变量都要有一个特定的类型,类型决定了在变量需要分配的内存大小和布局。在范围内的值可以存储在这个变量指定内存中。C#中的提供的基本类型可以分为如下几类: 类型 举例 整数类型 sbyte、byte、short、ushort、int、uint、lon...原创 2018-08-13 23:52:00 · 243 阅读 · 0 评论 -
C#每日一课(七)
C#运算符运算符是一种告诉编译器执行特定数字或逻辑的操作符,C#中内置的运算符如下:算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其它运算符 算术运算符假定有变量a和b分别值是10和20 运算符 描述 实例结果 + 把两个操作数相加 a+b,...原创 2018-08-16 00:39:27 · 374 阅读 · 0 评论 -
C#每日一课(四)
C#类型转换类型转换就是把数据从一种类型转换为另一种类型,C#中有两种类型转换的形式隐式类型转换:这些转换是C#默认的以安全方式进行的转换,比如从小的整数类型转换为大的整数类型或者是从派生类型转为基类显示类型转换:这些转换是用户通过使用预定义的函数显示完成的,显示转换需要强制运算符在上一节中Main方法中加上如下代码进行测试验证//类型转换 Console.Write...原创 2018-08-12 23:42:30 · 202 阅读 · 0 评论 -
C#每日一课(三)
C#数据类型在C#当中变量分为以下几种类型:值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 值类型值类型变量可以直接分配给一个具体的值,它们是从System.ValueType派生来的。比如:当声明一个int类型时,系统分配内存来存储值。以下列举了值类型 类型 描述...原创 2018-08-12 16:26:39 · 271 阅读 · 0 评论 -
C#每日一课(二)
C#基本语法C#是一种面向对象的编程语言。在面向对象的程序设计中,程序由各种相互交互的对象组成。相同类的对象常常具有相同的类型或者说都在同一class中。首先以一个类Circle类来举例添加类在资源视图下,右键点击命名空间,选择 添加--类(C)... 弹出对话框中录入类名称--添加(A)完成后IDE会生成对应的类结构代码写入类相关的代码如下:using ...原创 2018-08-11 23:19:50 · 501 阅读 · 4 评论 -
C#每日一课(一)
C#简介简单定义:C#是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由Ecma和ISO核准认可的。C#的诞生:由Anders Hejlsberg和他的团队在.Net框架开发期间开发的。C#是专为公共语言基础结构(CLI)设计的。CLI由可执行代码和运行时环境组成,允许在不同的计算机平台和体系结构上使用各种高级语言。C#的一些重要功能:...原创 2018-08-11 22:27:29 · 504 阅读 · 0 评论 -
C#每日一课(十)
C#封装封装,它是把一个或多个项目封闭在一个物理的或逻辑的包中。抽象与封装是面向对象程序设计的相关特性,抽象允许相关信息可视化,封装则允许程序员实现所需级别的抽象。封装使用访问修饰符来实现,它定义了类中成员的范围和可视性C#支持的访问修饰符如下:publicprivateprotectedinternalprotected internal public...原创 2018-09-08 22:59:20 · 584 阅读 · 0 评论 -
C#每日一课(十三)
C#数组 Array数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。声明数组变量并不是每一个元素单独进行声明,而是声明一个数组变量,然后使用下标来表示一个一个单独的变量。如数组变量numbers,它每一个元素是numbers[0]、numbers[1]、numbers[2]……,numbers[n]. 数组声明...原创 2018-10-11 14:37:57 · 229 阅读 · 0 评论 -
C#每日一课(十九)
C#运算符重载可以对C#中内置的运算符进行重载。使用自定义类型的运算符。重载运算符是具有特殊名称的函数,通过关键字operator #800400后跟运算符的符号来定义的。与其它函数一样,重载运算符有返回类型和参数列表。使用Visual Studio新建C#控制台应用程序chapter14_001新增类Boxclass Box{ private double leng...原创 2018-10-30 17:38:06 · 171 阅读 · 0 评论 -
C#每日一课(十八)
C# 多态性多态性,意味着有多重形式。在面向对象编程中,多态一般的表现形式是“一个接口,多个功能实现”。多态性分为静态的或动态的,静态多态表示函数的响应是在编译时发生的。动态多态则函数的响应是运行时发生的。静态多态性在编译时,函数和对象的连接机制被称为早期绑定,也被称为静态绑定。C#中提供了两种方式实现1.函数重载2.运算符重载 函数重载在同一个范围内对相同的函...原创 2018-10-24 16:04:28 · 198 阅读 · 0 评论 -
C#每日一课(十七)
C# 继承继承,它允许根据一个类来定义另一个类,这样使得创建和维护程序变得相对容易,同样也有利于代码的重用。在创建一个类时,不需要完全重新编写新的数据成员和成员函数,只需要设计一个新类,这个新类继承已有类即可。这个已有类叫做基类,新生成的类叫做派生类。继承的思想是实现了属于(is-a)的关系。 基类和派生类一个派生类只能有一个直接基类,但一个基类可以有多个直接派生类。继...原创 2018-10-23 13:55:28 · 261 阅读 · 0 评论 -
C#每日一课(十六)
C# 类(class)定义一个类,就定义了一个类型的蓝图,这个时候并没有任何的数据。但它定义了类的名称意味着对象由什么组成以及可执行什么操作就确定了。类的定义:<access specifier> class class_name{//成员变量<access specifier> <data type> variable1;<a...原创 2018-10-21 16:05:29 · 188 阅读 · 1 评论 -
C#每日一课(十二)
C#特殊数据类型nullableC#提供了一个特殊的数据类型,可空类型(nullable),它可以表示基础类型以内的值,再加上一个null值。如:Nullable<Int32>,可以理解为可空的Int32,它除了可以赋值为正常的Int32位范围内的任意值,同时也可以被赋值为null。nullable类型声明语法:<data_type>? <variab...原创 2018-10-10 13:47:29 · 184 阅读 · 0 评论 -
C#每日一课(十一)
C#方法一个方法是把一些相关逻辑的语句组织在一起,用来执行一个任务的语句块。使用方法过程定义方法 调用方法 C#中定义方法定义一个方法从根本上来说是声明它的结构元素,C#中定义方法的语句如下<Access Specifier> <Return Type> <Method Name>(Parameter List){Method...原创 2018-10-09 15:29:56 · 245 阅读 · 0 评论 -
C#每日一课(十五)
C# 结构体(Struct)结构是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct关键字用于创建结构。为了定义一个结构,必须使用struct语句。struct语句为程序定义了一个带多个成员的新数据类型。比如,定义一个图书Books的结构体可以如下进行:struct Books{public string title;public strin...原创 2018-10-15 14:56:58 · 227 阅读 · 0 评论 -
C#每日一课(十四)
C#字符串 StringC#中可以使用字符数组来表示字符串,但是,更常见的是使用string关键字来表示字符串变量。string关键字是System.String类的别名。创建String对象通过给String变量指定一个字符串 通过使用String类的构造函数 通过使用字符串串联运算符(+) 通过检索属性或调用一个返回字符串的方法 通过格式化方法来转换一个值或对象为它的字符串...原创 2018-10-13 18:38:21 · 295 阅读 · 0 评论 -
C#每日一课(六)
C#笔记006C#常量常量是一个固定的值,在程序执行的期间是不会改变的。常量是可以是基本的数据类型。常量可以被 当作常规的变量,只是它们的值在定义后是不能被修改的。 整数常量整数常量可以是十进制、八进制、十六进制的常量前缀:0X表示十六进制;0表示八进制当没有前缀的时候表示是十进制整数常量也可以有后缀,可以是U、L的结合,U表示是unsigned,L表示long...原创 2018-08-15 00:32:37 · 364 阅读 · 0 评论