02 2017 档案
摘要:一,什么是扩展方法? 1,扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 2,扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。 3,扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作
阅读全文
摘要:一,C#简介 1>C#是一种面向对象的、运行于.NET Framework之上的高级程序设计语言。 2>C# 是一种简洁、类型安全的面向对象的语言,开发人员可以使用它来构建在 .NET Framework 上运行的各种安全、可靠的应用程序。 3>C#是一种安全的、稳定的、简单的、优雅的,由C和C++
阅读全文
摘要:一,值类型特性 1.C#的所有值类型均隐式派生自System.ValueType。 2.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。例如:int i = new int();等价于:int i = 0; 3.所有的值类型都是密封(seal)的,所以无法派生出新的值类型。4.值类型的实
阅读全文
摘要:一,区别: 1,接口可以多重继承 2,接口是特殊的抽象 3,抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。 4,抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。 5,使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性 二,应用场景: 1》,
阅读全文
摘要:一,什么是委托? 在MSDN中写着:delegate 是一种可用于封装命名或匿名方法的引用类型。 委托类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。 PS:针对这委托是类型安全和可靠的理解:委托本质是类,是强类型,.net下对象都是类型安全的(类型安全的原因:C#在编译期会检验类型,如
阅读全文
摘要:一,继承是C#中面向对象的特性之一。 继承,简单一句话就是建立类之间的关系,实现代码的重用性,方便系统扩展。继承的两大特性是单根性和传递性。 1》继承的单根性:是指子类只能继承一个父类,不能同时继承多个父类。就好比儿子只能有一个父亲(亲生),派生类只能从一个类中继承,继承不支持多重继承。避免代码结构
阅读全文
摘要:1.封装概念 封装:每个对象都包含有它能进行操作的所有信息,这个特性称为封装。这样的方法包含在类中,通过类的实例来实现。(例如下面猫的主人属性) 2.封装的优点 1》.封装还避免了命名冲突的问题,封装有隔离作用,不同的类中可以有相同名称的方法和属性,但不会混淆,也可以减少耦合(比如实现界面和逻辑分离
阅读全文
摘要:一,方法和函数的区别: 对于过程式编程就叫函数,对于面向对象编程就叫方法,大多数情况下,两者表达的是同一个意思。 二,面向过程和面向对象编程的区别又是啥: 比如我要实现白鸡和黑鸡会叫的例子: 1》面向过程实现思路 1,实现白鸡叫的函数 2,实现黑鸡叫的函数 2》面向对象的实现思路 1,我们先把鸡定义
阅读全文
摘要:一,什么是多态? 1》多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能" 。 2》同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态 二,实现多态的三种方式:抽象,接口,虚方法实现多态。 1》虚方法实现多态 2》接口实现多态 3》抽象实现多态
阅读全文
摘要:一,什么是泛型? 泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。在.NET类库中处处都可以看到泛型的身影,尤其是数组和集合中,泛型的存在也大大提高了程序员的开发效率。 二,泛型的优点: 1>当在一个功能模块实现就是同一种方法,而类型不同
阅读全文
摘要:一,服务端代码 处理数据类 客户端代码:
阅读全文
摘要:一,什么是观察者模式(Observer Pattern)? 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象 二,代码如下: 在一开始我们先定义两个类,一个是Chinese类(被观察者) ,另一个是Jan类(观察者),
阅读全文
摘要:一,冒泡排序法理解:就是将一个集合里的数据当前位置和后一位比较,然当前位置大于后一位,则两个位置替换,直到排序完成 二,冒泡排序拓展 类 三,泛型的冒泡排序
阅读全文
摘要:强类型 对应弱类型弱类型就是没指明类型 赋值的时候才决定类型例子:var x;你可以给x赋予任何对象。 不过C#也不是“绝对”的强类型语言,因为它也有弱类型,那就是Object。我们知道Object是所有类型的最终基类,任何类型的对象都可以使用Object来引用强类型就是 声明的时候 必须制定其类型
阅读全文
摘要:C#中的每一种类型要么是值类型,要么是引用类型,所以每个对象要么是值类型的实例,要么是引用类型的实例。
阅读全文
摘要:一,表 1>,表是以每秒肉眼看不见的速度刷新的,每次插入数据,修改数据,检索数据都是,刷新表状态的,否则你看到的就是不准确的数据 2>,表是用来增 删 改的,已经不是用来查的了,除非你的访问密度小 二,视图 1>,视图和表的机制完全不同,视图是被动更新,只有删除,修改,插入的时候才刷新,而且不是针对
阅读全文
摘要:错误问题: 消息 245,级别 16,状态 1,第 1 行在将 varchar 值 '2,8' 转换成数据类型 int 时失败。 ps: 这是在后台分配菜单权限这个功能时出现的问题 一,解决方法: 将用户表和菜单表用CHARINDEX方法来选择存在的rows,返回集合, 二,而以上必须使用,CONV
阅读全文
摘要:一,抽象的实现 从上图得出的结果是: 综上:抽象类的虚方法需要被重写,那问题来了重写有两种方式,new和override又有什么区别 二,new和override重写的区别: 结果显示为: 综上总结: 1>如果基类没有定义虚方法,那子类只能使用new,而不能使用override 2>基类有没有定义虚
阅读全文
摘要:一,代码 综上理解, 1>break是跳出整个循环,执行下面代码 2>continue是重新执行循环条件,根据上面的代码理解,当你输入整数1,符合num==1的条件,sum += num这句代码不执行,而重新跳到while (true)这行
阅读全文
摘要:如下代码: 输出结果为:5,执行goto,跳过执行a++; goto和return跳出循环区别: 综上: 1>goto 语句可以跳转到标号所在的任何地方继续往下执行,值得注意的是,标号必须与goto语句在同一个函数体内,不能跨越函数体。 2>return 如果在程序中遇到return语句,那么代码就
阅读全文
摘要:一,要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。 二,两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。 三,在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。 1>碰
阅读全文

浙公网安备 33010602011771号