C#
文章平均质量分 76
Markfight!
一只小菜鸟。
展开
-
【C#】C#,了解一下
仙人指路最近状态不是很好,所以导致这篇文章晚了一些的发表,还望大家见谅。每次开始一个新的项目的时候,我从来不拘泥于培养计划上所给的那些材料,往往我会找几本书来一起研究,我觉得通过多个材料来学习同一个内容是一个非常享受和满足的过程,因为我可以站在不同的角度来思考问题,我的眼界会非常开阔。接下来我将以简洁易懂的语言带你来了解一下什么是C#。什么是.NET Framework?说起C#,就不得不提起.N...原创 2018-05-17 18:14:58 · 353 阅读 · 31 评论 -
关键字'User'附近有语法错误
今天在给小苹果调错的时候,遇到了这样的一个问题。关键字“user”附近有语法错误。我心想,这不是很简单嘛,肯定是敲错字目,于是找呀找,找了15分钟没找出来,感觉有点不对劲,于是上网一搜,真象大白啊。之所以会报这个错误,是因为user属于SQL里的保留关键字,我们在给数据表起名字的时候一般不要用SQL里的保留关键字作为表名。当我们用保留关键字建表的话,程序执行SQL语言时就会发生冲突。对这种...原创 2018-11-20 18:45:06 · 3414 阅读 · 24 评论 -
【机房重构】职责链模式解决下机消费时间计算问题
阿萨德原创 2018-12-12 21:21:50 · 219 阅读 · 4 评论 -
【C#】五分钟搞懂重写和重载
在开发机房重构的过程中,博主一直在重复两件事情,重写和重载。刚刚接触这两个概念的时候也是很蒙逼,但是随着学习的深入,现在对这两个词的概念算是能够区分开了。今天就来说一说重写和重载。重写(override)在C#中,派生类可以继承基类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动得继承基类的方法,而是想做一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。例如,假设动物类...原创 2018-12-13 08:58:31 · 394 阅读 · 12 评论 -
【机房重构】模板方法—让组合查询变简单
组合查询是我们在开发机房收费系统中公认比较难实现的模块,但是我告诉你有一种方法可以让组合查询变得很简单,你想知道吗?听我慢慢道来。在准备开发这个功能的时候,我发现它的复用程度很高:界面一样,控件布局一样,查询方式也一样,只不过是我查询的具体内容之间有些差别。仔细一想,这不就跟模板方法一样吗。模板方法:定义一个操作中的算法的骨架(组合查询父窗体),而将一些步骤延迟到子类中(子窗体独有的属性)。...原创 2018-12-13 10:32:04 · 267 阅读 · 12 评论 -
【机房重构】存储过程(组合查询+结账)
在开发机房收费系统个人重构版的过程中,我是根据功能来走的七层,这样就有一个弊端,一个功能就要走一遍七层,很是繁琐。而在很早之前我就听各位同学说到存储过程可以解决这一弊端,尤其是在组合查询和结账的时候,所以我打算在组合查询和结账功能的时候用一用存储过程,当然过程不是一帆风顺的,但是最后收获还是蛮大的。什么是存储过程?存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集...原创 2018-12-13 11:23:25 · 479 阅读 · 20 评论 -
【C#】容量超出了最大容量
为了让我的机房看上去不是那么low,决定加上一款皮肤。但是在我引用了Iriskin4.dll文件,给机房系统加上了皮肤之后,出现了这样的问题。经过查询之后,发现了出现问题的原因:MessageBox.Show("我长得好帅啊!!", "温馨提示");“温馨提示”,即messagebox的标头字符过长。下面给出两种解决方案:1、将messagebox的标头字符串控制在2个以下。2、...原创 2018-12-09 19:13:39 · 1172 阅读 · 9 评论 -
【C#】抽象类
学习了这么长时间的C#了,现在来回顾总结一下抽象类。概念抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。特征抽象类不能实例化。抽象类可以包含抽象方法和抽象访问器。不能用 sealed 修饰符修饰抽象类,因为这两个修饰符...原创 2018-12-23 20:51:25 · 217 阅读 · 17 评论 -
Panel控件—让你的界面变好看
panel控件对于美化UI窗体有很大的作用,这不,我们在机房合作的时候就使用了panel控件。使用了panel控件之后,减少了弹出窗体的次数,因为窗体都放在了panel控件中显示出来了。下面来看看一成品图。今天就来教大家如何使用panel控件。步骤:新建一个panel控件新建一个子窗体,子窗体属性FormBorderStyle:None、size大小和panel大小一致。新建一个子窗体,...原创 2019-01-14 21:13:19 · 10386 阅读 · 24 评论 -
如何通过list中某一元素进行排序
今天在完善功能的时候遇见了这样一个需求:通过list中的某一元素进行升序排列。我们都知道,通过SQL语句查出来的数据顺序通常和它在数据库中的顺序是一样的,那么如何让这些数据集合进行排序呢?今天总结了几种方法。方法一:调用sort方法,实现升序和降序的排列。List<int> list = new List<int>();list.Sort();// 升序...原创 2019-03-28 21:21:32 · 2668 阅读 · 24 评论 -
autofac实战
Autofac是.NET领域最为流行的IOC框架之一,传说是速度最快的一个。IOC全称Inversion of Control,是控制反转的意思,是面向对象的一种设计原则。IOC框架包括:Unity、MEF、Spring.NET、postSharp、Autofac之前我们写程序的时候所有对象都是程序员手动 new 的,拿三层架构来说,是这样:...原创 2019-04-14 21:31:44 · 432 阅读 · 10 评论 -
【C#】base和this的区别
随着软考的临近,这段时间又把设计模式从头到尾敲了一遍。敲的时候大体的框架和思想是明白的,但是总有一些沟沟角角的地方还是不太明白,今天就发现了两个,base和this。现在来好好学习一下。base和this在C#中被归于访问关键字,顾名思义,就是用于实现继承机制的访问操作,来满足对对象成员的访问,从而为多态机制提供更加灵活的处理方式。base:用于在派生类中实现对基类公有或者受保护成员的访问,...原创 2018-11-03 21:30:20 · 971 阅读 · 14 评论 -
【C#】C#程序退出的几种方法
方法一:this.Close(); //只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;方法二:Application.Exit(); //强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;方法三:Application.ExitThread(); //强制中止调用线程上的所有消息,同...原创 2018-10-14 21:31:07 · 841 阅读 · 11 评论 -
【C#】无法实现接口成员
今天在敲七层的时候,遇到了之前敲七层的错误,但是还是让我停顿了一下,现在做一个总结。错误:无法实现接口成员解决方法:1.缺少public2.D层代码跟接口层代码不一致。3.在报错的那句话上面右击,选择实现接口。(不提倡,既然这样我还解耦干啥)...原创 2018-09-30 20:55:43 · 1771 阅读 · 13 评论 -
【C#】知识点总结
变量和常量命名变量在C#中,使用变量的基本原则是先定义后使用。其命名规范如下:1. 必须以字母或下划线开头2. 只能由字母、数字、下划线组成,不能 包含空格、标点符号、运算符及其他符号3. 不能与C#关键字同名,如class,new等例如,正确命名:int i; //整型变量 stringuser_name; //字符串型变量 char @name;//字符型...原创 2018-05-27 21:38:35 · 487 阅读 · 29 评论 -
【C#】数组
在C#中,数组和集合是两个非常重要的概念,这两种类型都可以存储多个数据,在程序中有着非常多的应用。数组数组是一组具有相同类型和名称的变量的集合,如一组整数、一组字符等。一个定义的数组中包含以下几个要素:元素类型数组的维数每个维数的上下限数组的声明语法数组类型[ ] 数组名;注意:在C#中只能使用上面的那种形式,不能把方括号放在数组名的后面Int[] score; //存储成绩,类型为整型D...原创 2018-06-30 17:04:27 · 476 阅读 · 12 评论 -
【C#】集合
为什么有了数组,还要出现集合?因为,数组有严重的局限性。首先,数组元素的数据类型必须是相同的,其次,在创建数组时必须知道有多少个元素,对应用程序来说,还要通过循环索引来访问这些元素。因此,数组并不是最方便的数据结构。所以,集合出现了,集合来管理数据将更为方便。集合概念集合是通过高度结构化的方式存储任意对象的类,与无法动态调整大小的数组相比,集合不仅能随意调整大小,而且对存储或检索存在其...原创 2018-07-08 21:12:30 · 1204 阅读 · 11 评论 -
【C#】关于接口
关于接口接口的特点:接口的定义是指定一组函数成员而不实现成员的引用类型,其它类型和接口可以继承接口。定义还是很好理解的,但是没有反映特点,接口主要有以下特点:(1)通过接口可以实现多重继承,C#接口的成员不能有public、protected、internal、private等修饰符。原因很简单,接口里面的方法都需要由外面接口实现去实现方法体,那么其修饰符必然是public。C#接口中...原创 2018-07-29 21:03:21 · 219 阅读 · 18 评论 -
【C#】面向对象三大特征
前言验项目那天师父问我,面向对象三大特征都有什么呀?“封装、继承、多态”。那分别讲一讲这三大特征吧!我:“enmmmmm……”确实是这样,要我真的说出来的话,我说不出来,我不能够很好地描述出来,于是我准备在学习一遍。封装封装是指将对象的信息进行隐藏,使它的使用者无法看到,而只是提供一个访问接口。在类中,通过不同的修饰符能让类的成员实现公开或隐藏。通过这些修饰符,类实现了很好的封装。...原创 2018-08-11 10:29:33 · 352 阅读 · 10 评论 -
【C#】可访问性不一致的原因及解决方法
出现原因其中一个是返回参数的访问级别小于函数的访问级别,也就是说当定义一个返回参数的方法的时候,如果返回参数的访问级别低于方法的访问级别就会出现这样的错误,这个是可以理解的,如果返回的参数不能被访问,那么定义的返回的方法也是错误的.(当你在一个访问性比较强(例如公共)的字段/属性/方法里使用自定义类型,而这个类型访问性比较低(例如保护/私有)的时候就发生这个问题了) 那么:返回类...原创 2018-08-02 16:53:13 · 474 阅读 · 8 评论 -
【三层】初识三层
三层到现在学了有三天左右的时间了,应该写一个博客来总结梳理一下了。是什么?三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计...原创 2018-08-15 17:07:46 · 287 阅读 · 13 评论 -
【三层】深入理解三层架构
昨天验收三层架构,师父问了几个很简单很基础的问题,我回答的不是很好,而且对三层架构的理解和解释不是很清楚,于是下去之后我又重新研究了一下三层架构,从u层开始,一行代码一行代码的捋了一遍,现在总算理清楚了。首先,我先画了一个图来看一看三层架构是如何进行数据的请求和工作的。下面我来讲一下三层代码的流程,代码是如何跑起来的:1、在u层输入用户名,密码,登录。 将输入的用户名...原创 2018-08-22 16:03:06 · 676 阅读 · 28 评论 -
【vs】VS2017评估期到期解决办法,亲测有效
今天vs2017评估期到期了,于是找到了这个。很好地解决了产品密匙的问题。Visual Studio 2017(VS2017) 企业版 Enterprise 注册码:NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Visual Studio 2017(VS2017) 专业版Professional 激活码key:KBJFW-NXHK6-W4WJM-CRMQB-G3CDHOf...原创 2018-08-29 09:55:55 · 17460 阅读 · 42 评论 -
C#中String与string的区别
string 是 C# 中的类,String 是 .net Framework 的类(在 C# IDE 中不会显示蓝色) C# string 映射为 .net Framework 的String 如果用 string, 编译器会把它编译成 String,所以如果直接用 String 就可以让编译器少做一点点工作。如果使用 C#,建议使用 string,比较符合规范 string 始终代表 Sys...原创 2018-09-23 20:28:06 · 739 阅读 · 28 评论 -
debug和release
因为一句话,产生了研究debug和release的想法。前言Bin 目录用来存放编译的结果,bin是二进制binrary的英文缩写,因为最初C编译的程序文件都是二进制文件,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。obj是object...原创 2019-05-19 20:31:13 · 290 阅读 · 12 评论