随笔分类 - C#
摘要:(1)广义:将多个数据定义和行为定义装起来。 (2)狭义:将属性私有化,通过公有化的方式进行操作,提高代码的安全性。 看如下没有封装的例子: 创建一个员工类: public class Employee { //public:公有,所有地方都可以访问,private:私有,只有自己内部可以访问 //
阅读全文
摘要:当子类继承父类后对父类的方法有不同的实现方式,可以通过如下两种方法来实现。 (1)隐藏父类方法。 (2)重写父类方法。 一、隐藏父类方法 //人 class Person { pub void Work() { Console.WriteLine("人在工作!"); } } //定义医生类继承于人类
阅读全文
摘要:声明静态成员使用static修饰符。 所谓静态就是指在编译后分配的内存会一直存在,直到程序退出时才会释放内存空间。 一个类中的静态成员可以是静态字段,也可以有静态方法,静态成员不需要创建对象后使用,可以直接使用类名来引用,例如: 有一个学生类,如下: public class Student { /
阅读全文
摘要:泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。 泛型最常见的用途是创建集合类。 普通集合在使用用出现的问题: class Teacher //教师 { public Teac
阅读全文
摘要:抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 **抽象方法:**抽象类不能实例化对象,所以抽象类必须被继承,才能被使用 , 父类包含了子类的常见的方法,但是由于父类本
阅读全文
摘要:本文章主要介绍两种集合:(1)ArrayList;(2)Hashtable; 一、ArrayList ArrayList类似于数组,其大小可根据需要动态改变,也可称之为动态数组。 有如下学生类: class Student { public Student(string code,string na
阅读全文
摘要:一、枚举 C#语言中提供了枚举类型,枚举是为具有一组特定值的变量特别设计的一种自定义数据类型,是一种值类型,其成员由一组逻辑上相关的命名整型常量构成。 枚举举例: //枚举:(枚举和整数可以相互之间转换) public enum OrderStatus { 新订单 = 1, 已发货, 已收货 } s
阅读全文
摘要:在EF中对数据的操作会频繁使用Linq和Lambda的语法,所以我们一起学习Linq和Lambda。 一、资料准备 采用模拟的形式,并非从数据库直接读取数据,所以需要有一些支持代码,如下: 部门类 public class Dept { public Dept() {; } public Dept(
阅读全文
摘要:一、服务端 1、主界面 2、远端连接Socket客户端集合 //将远程连接的客户端的IP地址和Socket存入集合中 Dictionary<string, Socket> dicSocket = new Dictionary<string, Socket>(); 3、监听事件 /// <summar
阅读全文
摘要:一、常见非托管资源 Windows窗口句柄、数据库链接、GDI对象、独占文件锁等等对象 ApplicationContext,Brush,Component,ComponentDesigner,Container,Context,Cursor FileStream,Font,Icon,Image,M
阅读全文
摘要:一、定义接口 public interface ICalculate { int Add(int a, int b); } 二、定义实现接口类 public class A : ICalculate { public int Add(int a, int b) { return a + b; } }
阅读全文
摘要:一、历史版本 delegate void StudentDelegate(string name, int age); public class LambdaTest { public void Show() { DateTime dateTime = DateTime.Now; //历史 //版本
阅读全文
摘要:一、定义特性 定义验证抽象类 public abstract class AbstractValidateAttribute:Attribute { //和接口类似,抽象方法只声明方法 public abstract bool Validate(object objValue); } 长度验证特性类
阅读全文
摘要:一、定义特性 //字段属性约束,在定的的特性上使用系统特性 [AttributeUsage(AttributeTargets.All,AllowMultiple =true,Inherited =true)] public class ShowAttribute:Attribute { public
阅读全文
摘要:一、简介 特性(Attribute):相当于标签,贴上标签就产生了新功能。可以这样简单理解。 二、常见系统特性 [Required] [Display(Name = "密码")] [StringLength(100, ErrorMessage = "{0} 必须至少包含 {2} 个字符。", Min
阅读全文
摘要:代码实现 //泛型委托声明 delegate void GenericDelegate<T>(T t); public class GenericDelegate { public static void InvokeDelegate() { GenericDelegate<string> gene
阅读全文
摘要:简介 每一个委托都是继承自MulticastDelegate,也就是每个都是多播委托。 带返回值的多播委托只返回最后一个方法的值 多播委托可以用加减号来操作方法的增加或者减少。 给委托传递相同方法时 生成的委托实例也是相同的(也就是同一个委托) 代码实现 //声明委托 delegate void M
阅读全文
摘要:加载DLL文件 Assembly assembly2 = Assembly.LoadFrom("SqlServerDB.dll"); 获取指定类型 Type type2 = assembly2.GetType("SqlServerDB.PropertyClass"); 调用泛型方法 object o
阅读全文
摘要:加载DLL文件 Assembly assembly = Assembly.LoadFrom(@"SqlServerDB.dll"); 获取指定类型 Type type = assembly.GetType("SqlServerDB.GenericClass`2").MakeGenericType(t
阅读全文
摘要:一、使用方法 查找DLL文件, 通过Reflection反射类库里的各种方法来操作dll文件 二、步骤 加载DLL文件 Assembly assembly1 = Assembly.Load("SqlServerDB");//方式一:这个DLL文件要在启动项目下 string filePath = E
阅读全文