- 博客(36)
- 资源 (1)
- 收藏
- 关注
翻译 软件过程结构
1.通用过程模型2.过程模型惯用过程模型:力求达到软件开发的结构和秩序,其活动和任务都是按照过程的特定指引谁许进行的瀑布模型:V模型增量过程模型演化过程模型原型开发范型不建议使用,一般这种方式设计的系统,一般都会被作废,无法演化实际的系统。但是可以对客户有一个大致的认知,方便后期做开发确认。原型开发存在的问题:当客户看到原型的时候,会要求立即产出产品上线使用,但是对于开发...
2018-11-19 16:35:06
398
翻译 软件工程
1.要构建21世纪挑战的软件产品需要团队合作,需要设计,需要高质量,需要可维护性2.定义:软件工程是:(1)将系统化的、规范的、可量化的方法应用与软件的开发、运行和维护,即将工程化方法应用与软件;(2)对(1)中所述方法的研究。3.软件工程框架:有以下5个活动沟通:收集需求来定义软件特性和功能策划:定义和描述软件工程的工作,包括要执行的技术任务、可能的风险、资源需求、工作产品和工...
2018-11-19 15:42:25
306
翻译 软件的本质
对于软件本质就不多说,因为定义比较多,也不能完全的理解,只能说提出一些问题。1.软件开发面临的问题:为什么软件需要如此长的开发时间为什么开发成本居高不下为什么在将软件交付顾客使用之前,我们无法找到所有的错误为什么维护已有的程序要花费如此多的时间和人工为什么软件开发和维护的进度仍旧难以度量2.软硬件失效图:从图中我们可以看出不断的变更是软件退化的根本原因。3.软件应用领域:...
2018-11-19 14:48:32
1271
原创 DevExpress组件之——GridControl
创建一个gridcontrol名称为dgvHistory,里面的gridview命名为dgvHistoryView1。由于采用了3层分组。所以对于分组选择存在使用的问题。//获取当前选择行的数组 int[] rows = dgvHistoryView1.GetSelectedRows(); //获取当前分组下的数据个数 int count = dgvHistoryView1.GetC
2017-03-31 16:56:41
585
转载 WPF 分辨率无关性原理
WPF在计算窗口尺寸大小时使用的是系统的DPI设置。WPF窗口以及窗口中所有的元素都是使用设备无关单位度量。一个设备无关单位被定义为1/96英寸。 [物理单位尺寸]=[设备无关单位尺寸]*[系统DPI]=1/96英寸*96dpi=1像素。 当系统默认dpi设置为96dpi时,也就是需要96个像素填充1英寸的空间,如果系统dpi设置为120dpi(对于高分分辨率显示器),这时的物理单位尺寸为:
2017-03-12 17:34:59
450
转载 GDI/GDI+介绍
1、GDI概述 GDI在全称是Graphics Device Interface,即图形设备接口。是图形显示与实际物理设备之间的桥梁。 GDI使得用户无需关心具体设备的细节,而只需在一个虚拟的环境(即逻辑设备)中进行操作。它的桥梁作用体现在: (1)用户通过调用GDI函数将逻辑空间的操作转化为具体针对设备驱动程序的调用。 为实现图形设备无关性,Windows 的绘图操作在一个设备描述
2017-03-12 17:01:16
3460
转载 kernel32.dll函数介绍
kernel32.dll是非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。 CALL DWord Ptr [<&KERNEL32.WriteFile>] kernel32.Wr
2017-03-12 16:55:44
13050
转载 user32.dll 函数说明
函数名称 说明 ActiveKeyboardLayout 激活一个不同的键盘布局,该布局必须先由 LoadKeyBoardLayout函数装载 AdjustWindowRect 根据希望的用户矩形大小来
2017-03-12 16:45:01
17610
转载 User32.dll详细介绍1
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace WindowsAPI { class CSharp_Win32Api { #re
2017-03-12 16:43:06
5768
转载 C#连接Oracle数据库(直接引用dll使用)
操作步骤:DLL下载后并引用 下载地址:Oracle.ManagedDataAccess.zip 下载后,将Oracle.ManagedDataAccess.dll放到自己的项目中,然后引用直接调用(connString 改为自己的连接字符串) using Oracle.ManagedDataAccess.Client;public static string ConnectOracle()
2017-03-07 13:58:53
480
转载 C# 连接 Oracle 的几种方式
一:通过System.Data.OracleClient(需要安装Oracle客户端并配置tnsnames.ora) 1. 添加命名空间System.Data.OracleClient引用 2. using System.Data.OracleClient; 3. string connString = “User ID=IFSAPP;Password=IFSAPP;Data Source
2017-03-07 13:46:41
348
转载 DevExpress组件之——NavBarControl
类似于VS自带的Group控件的管理器。 因为在改控件中可以增加Group。和在Group里面增加子项。 1.新建一个WindowsForm项目在项目中添加控件navBarControl。 2.右击navBarControl控件可以添加Group和Item
2017-01-06 09:20:06
1248
转载 DevExpress组件之——DockPanel
该控件类似于一个容器与VS自带的Panel类似。 1.在“引用”中添加DevExpress.XtraBars和DexExpress.XtraNavBar程序集2.往工具栏拖出DockManager控件,点击右上角的小三角,再点击“customize”,最后点击“New”,新建一个DockPanel控件3.往工具栏拖出NavBarControl控件放入DockPanel控件里面,另附:DockPan
2017-01-06 09:02:09
8707
原创 DevExpress组件之——XtraTabbedMdiManager
1.新建一个WindsForm窗体,默认为FROM1,将IsMdiContainer的属性设置为True。从工具箱中拖XtraTabbedMdiManager控件到界面上 2.在原来的项目中再建一个FROM窗体。在FROM1的LOAD事件中加入下面的代码。 private void Form1_Load(object sender, EventArgs e) {
2017-01-05 17:19:23
11839
转载 DevExpress组件之——BarManager组件
第一步:从工具箱中将BarManager拉入窗体 ,在设计时 BarManager 被添加到窗体之后,会自动创建三个空的 bars: 主菜单、顶部工具栏、窗体底部的 状态栏。 第二步:右击BarManager控件选择customize用户自定义。添加项。也可以单击上图中的Add进行添加项。 第三步:当你使用用户自定义的时候,在打开的上述的窗口的时候可以拖动。Commands里面的项添加到
2017-01-05 16:58:57
3059
转载 DevExpress组件之——PopupMenu组件
目录在项目中使用了第三方控件DevExpress,得开始研究其他控件的使用,以下是PopupMenu组件的使用方法:第一步:从工具箱中将BarManager拉入窗体 第二步:在BarManager控件中点击添加几个BarSubItem项(子项-有下一级菜单)。 第三步:在BarManager控件中点击添加几个BarBottonItem(最终项)。 第四步:从工具箱中将PopupMenu
2017-01-05 16:42:46
2581
2
转载 C# System.Reflection (反射)
在使用.NET创建的程序或组件时,元数据(metadata)和代码(code)都存储于“自成一体”的单元中,这个单元称为装配件。我们可以在程序运行期间访问这些信息。在System.Reflection中有这样一个class————Assembly,我们可以通过它来加载一个装配件。方法如下: Assembly assm=Assembly.LoadFrom(fileName); 其中filena
2016-12-29 15:53:35
1170
转载 运算符
C#存在许多运算符: 1.条件运算符(?:) 也叫做三元运算符,是if…else结构的简化形式。其名称的出处是它带有3个操作数。首先判断一个条件,如果是true则返回一个值,为false返回另一个值。语法如下 condition ? true_value : false_value; 其中condition是要判断的布尔表达式,true_value是condition为true时返回的值
2016-12-23 17:20:21
304
转载 C#中的yield关键字的使用方法介绍
yield这个关键字是和迭代器挂钩的,而且是与return一起以yield return的形式合用的,用来返回迭代器中的条目。 yield不能单独放在try-catch块中,如果try中有yield那么,这个try块后面不许跟着finally块;也不能出现在匿名方法中,所以,看起来yield似乎并不常用,但是也不是不用。我前面有一个关于迭代器的例子《C#中的迭代器基础》中就用到了。可以参考一下那个
2016-12-23 16:41:10
347
转载 理解 C# 泛型接口中的协变与逆变(抗变)
一、协变和逆变是什么? 先从字面上理解 协变(Covariance)、逆变(Contravariance)。co- 是英文中表示“协同”、“合作”的前缀。协变 的字面意思就是 “与变化的方向相同”。 contra- 是英文中表示“相反”的前缀,逆变 的字面意思就是是 “与变化方向相反”。 那么问题来了,挖掘机技术哪家强?这里的 变化方向 指的是什么?C# 中对于对象(即对象引用),仅存在一种隐
2016-12-22 14:37:10
929
2
转载 C# Type调用方法和CreateInstance的区别
C#在类工厂中动态创建类的实例,所使用的方法为:1. Activator.CreateInstance (Type)2. Activator.CreateInstance (Type, Object[])两种方法区别仅为:创建无参数的构造方法和创建有参数的构造函数。//Activator.CreateInstance(Type)object result = null;Type typeofCo
2016-12-22 11:10:57
2960
转载 C#泛型(五)
七、泛型方法泛型方法是声名了类型参数的方法,如下:void Swap<T>( ref T lhs, ref T rhs){ T temp; temp = lhs; lhs = rhs; rhs = temp;}下面的示例代码显示了一个以int作为类型参数,来调用方法的例子:int a = 1;int b = 2;//…Swap<int>(a, b);也可以忽略类型参数,编
2016-12-22 09:37:17
298
转载 C#泛型(四)
六、泛型接口 不论是为泛型容器类,还是表示容器中元素的泛型类,定义接口是很有用的。把泛型接口与泛型类结合使用是更好的用法,比如用IComparable而非IComparable,以避免值类型上的装箱和拆箱操作。.NET框架2.0类库定义了几个新的泛型接口,以配合System.Collections.Generic中新容器类的使用。当一个接口被指定为类型参数的约束时,只有实现该接口的类型可被用作类型
2016-12-21 16:24:52
221
转载 C#泛型(三)
五、泛型类泛型类封装了不针对任何特定数据类型的操作。泛型类常用于容器类,如链表、哈希表、栈、队列、树等等。这些类中的操作,如对容器添加、删除元素,不论所存储的数据是何种类型,都执行几乎同样的操作。对大多数情况,推荐使用.NET框架2.0类库中所提供的容器类。有关使用这些类的详细信息,请参见基础类库中的泛型。通常,从一个已有的具体类来创建泛型类,并每次把一个类型改为类型参数,直至达到一般性和可用性的最
2016-12-21 16:18:15
275
转载 C#泛型(二)
四、类型参数的约束若要检查表中的一个元素,以确定它是否合法或是否可以与其他元素相比较,那么编译器必须保证:客户代码中可能出现的所有类型参数,都要支持所需调用的操作或方法。这种保证是通过在泛型类的定义中,应用一个或多个约束而得到的。一个约束类型是一种基类约束,它通知编译器,只有这个类型的对象或从这个类型派生的对象,可被用作类型参数。一旦编译器得到这样的保证,它就允许在泛型类中调用这个类型的方法。上下文
2016-12-19 16:44:40
284
转载 C#泛型(一)
泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性。泛型为.NET框架引入了类型参数(type parameters)的概念。类型参数使得设计类和方法时,不必确定一个或多个具体参数,其的具体参数可延迟到客户代码中声明、实现。这意味着使用泛型的类型参数T,写一个类MyList,客户代码可以这样调用:MyList, MyList或 MyList。这避免了运行时类型转换或装箱操作
2016-12-19 16:21:09
248
转载 DataGridView的虚模式填充(大数据的填充)
DataGridView是.net 2.0新增的表格数据编辑和显示控件,简单的数据显示和编辑,只需直接和数据源绑定就可以了。 对于 一些特殊情况,我们需要自己填充DataGridView,这时候只需要按照行列顺序,首先获得行,然后通过行的Cells属性,得到单元格,设置其 Value属性即可。但这种模式有个问题,即对于几十行或者几百行的数据,显示效率不是问题,当数据量逐渐增大时,效率就成了
2016-12-19 14:39:26
6434
1
转载 通过DataGridView分段显示数据
前段时间在用datagridview显示数据的时候意识到由于需要显示的数据过大,同时用户查看数据的时候一般只要查看近几天的数据,为了防止数据量的过大导致查询过慢,想到之前在手机上看火车票的时候当拉到底部的时候会又刷新一部分数据。所以想做一个这种样式的datagridview的事件,在网上找到这样一个事例,所以记下来参考。 参考事例如下: 通过DataGridView可以到达分段显示数据的效果,即
2016-12-19 14:19:49
1338
转载 ORACLE学习命令
1.创建表空间 CREATE TABLESPACE TSP_YDHIS logging DATAFILE ‘D:\app\acer\product\11.2.0\database\TSP_TEST.DBF’ SIZE 32m AUTOEXTEND ON NEXT 32m EXTENT MANAGEMENT LOCAL;2.创建用户 create user test123 identi
2016-12-15 15:17:49
287
转载 常用的cmd命令
提供注册和卸载命令: 卸载: cd /d %~dp0 Regsvr32 /u gregn50.dll Regsvr32 /u grdes50.dll 注册: cd /d %~dp0 Regsvr32 gregn50.dll Regsvr32 grdes50.dll注意:cd /d %~dp0当前CMD运行的目录附CMD命令大全 CMD命令大全(已更新)net use \ip\i
2016-12-15 14:44:48
1068
转载 Regsvr32注册DLL和Regasm
在网上搜索关于为什么要使用Regsvr32注册DLL。 得到下面的回答,感觉蛮好的。所以记录下来。感觉就好像指针一样。普通DLL是不用注册嘀. 只有com组件才需要注册,注册时他把clsid和progid(可选)及DLL的路径写到注册表中. 于是用这些组件的客户端在创建该组件时就不用知道他的路径. 只需调用cocreateinstance并传入clsid,系统就能创建该组件的实例了.由于本人
2016-12-15 14:06:00
6210
转载 c# user.dll
转自:http://www.cnblogs.com/gaoweipengWin32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的API,可以很高效的实现想要的效果。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.Co
2016-12-15 09:48:56
534
转载 C#修饰符stattic、virtual、abstract、override、sealed、extern
static 用于所有成员(函数,类、方法、属性)成员不作用于类的具体实例。因此不需要实例化。创建的一个Test1类里面包含static静态的属性和方法using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespa
2016-12-14 14:38:25
1030
转载 C#abstract用法
abstract可以用来修饰类,方法,属性,索引器和时间,这里不包括字段. 使用abstrac修饰的类,该类只能作为其他类的基类,不能实例化,而且abstract修饰的成员在派生类中必须全部实现,不允许部分实现,否则编译异常. 如: using System;namespace ConsoleApplication8 { class Program { st
2016-12-13 16:17:55
701
转载 C#Object类型
在C#中,Object类型是所有类型的根,大家平常开发中都要跟它打交道,但不见得对它里面的每个方法都知根知底,下面对它里面的每个方法都进行仔细的总结。 概述: 构造函数 Equals函数 Finalize函数 GetHashCode函数 GetType()函数 ReferenceEquals函数 MemberWiseClone()函数 ToString()函数 Object类型中
2016-12-13 15:43:28
13214
转载 C#预处理器指令
“预处理器指令”这些命令从来不会转化为可执行代码的命令,但会影响编译过程的各个方面。例如,使用预处理器指令可以禁止编译代码的某一部分。如果计划发布两个版本的代码,即基本版本和拥有更多功能的企业版本,就可以使用这些预处理器命令。在编译软件的基本版本时,使用预处理器指令可以禁止编译器编译与额外功能相关的代码。另外,在编写提供调试信息的代码时,使用预处理指令可以禁止编译器编译与额外功能相关的代码。另外,
2016-12-13 13:38:14
551
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人