深远明白面向对象编制程序思想,服务的当中Windows组件

 

c#基本功浅学,

C# 程序设计

第一章 初识 .NET Framework 和 C#

.NET Framework 是支撑生成和周转下一代应用程序和 Web
服务的个中Windows组件

.NET Framework 的重大组件为公物语言运维时(CL帕杰罗).NET Framework
类库(.dll)

.NET Framework
提供了托管执行环境简化的开支陈设以及与种种编制程序语言的融会(跨语言的平台)

.NET Framework 具有多个十分重要组件:公共中文言运维时(CL宝马X3) .NET Framework
类库(FCL)

CL福特Explorer称为公共语言运转时(是管理代码执行并提供简化开发进度的服务的运维环境)(提供了内部存款和储蓄器管理,线程执行,代码执行,代码安全注明,编写翻译以及别的系统服务

IL 中间语言

.exe

JLT 即时编写翻译器 (编写翻译成2进制的机器语言)

CLOdyssey 是由 CTS(通用项目系统) 和 CLS(公共语言专业) 组成

System.Collections.Generic; 泛型

System.Linq;数据库

System.Text; Builder

静态方法能够间接运行

App.config 应用程序配置文件

命名空间(逻辑组织)(制止命名顶牛)

第二章 C# 基础语法

标识符:是程序中项目和变量的称呼,标识代码成分名称,由Unicode字符组成(使用未格式化的Unicode字符,以一个合法的Unicode字符或下划线发轫,用关键字作标识符,必须以@符号初始(数字不是法定的Unicode字符))

abstract  as  base  bool  break  byte  case  catch  char  checked chass
 const (常量) continue  decimal  default  delegate  do  double  else 
enum  event  explicit  extern  false  finally  fixed  float  for 
foreach  goto  if  implicit  in  in(泛型修饰符)  int  interface 
internal(程序集内部)  is(类型判断)  lock(多线程时候用)  long  namespace 
new(隐藏父类的同名方法)  null  object  operator  out(类型输出参数) 
out(泛型修饰符)  override(重写) 
params(可变参数数组,必须放在参数列表的最终一个)  private 
protected(珍贵的,唯有子类能够访问)  public  readonly  ref(引用参数) 
return  sbyte  sealed(密封类,不能够被持续,修饰方法,子类不可能被涂改) 
short  sizeof  stackal  static  string  struct(结构)  switch  this 
throw(抛出非凡)  true  try  typeof  uint  ulong  unchecked  unsafe 
ushort  using  virtual(虚拟的,定义虚方法,能够override)  void 
volatile  while

而外参数,私有字段及片段变量使用Camel风非凡,其余均选择帕斯Carl风格

帕斯Carl:类,方法名,属性名,类内的共有字段,接口,自定义的数据类型(枚举,结构)

变量:程序运维时期变更的顺序元素(变化的因素的器皿)

匿名局地变量也是强类型的局地变量(只可以在措施内部用)开首化的时候必须是强类型,无法是无类型的

object string(类) 引用类型,此外为值类型

byte 0 – 255

sbyte -128 – 127

decimal (精度高) double(范围大)

\b退格 \r换行 \n回车

TryParse(“”, out )转换失利重返结果为0

Convert.ToSingle()转换为浮点型

C#运算符

先行级依次

一元运算符(正,负,取反,按位求补,加加,减减,点)

2元运算符(算术,移位,关系,赋值,逻辑、条件)(is:类型判断
前者是还是不是不前面包车型地铁品类的,继承的也算
是回去true,否则false;as:转换退步再次来到空值)

安慕希运算符

里氏替换原则

用as 转换记得判断转换结果是还是不是null 不是再去实施后续代码

短路与 && 从前将来相继判断 有false就不履行后边的判定了

短路或 || 有true 后边就不再判断

字符串的不变性

string.Equals(str1, str2); === str1.Equals(str2); === str1 == str2;

str.Split();分隔

DateTime 是组织 是值类型

Array

全体数组都隐式继承自 System.Array 类

Array.Sort();排序

Array.Reverse();反转

数组是引用类型,对数组的改动能够保留下来(值类型操作的是副本)

其三章 面向对象的程序设计及类的概念

目的是人人要开始展览钻探的任何事物,是对标题领域中东西的虚幻(万物皆对象,每一个对象都以绝无仅有的,对象具备属性和行事,对象拥有状态(属性对应的值),对象都属于有些类,每种对象都以某些类的实例(指的对象))(能添加量词的都以指标

:是1种具有相同属性和行事的指标的悬空,描述1组一般对象的共性(类是模型,是模板,是图表)

类和对象时期的关联:一.
我们会从同一种对象身上提取共同享有的特点、属性和协办能实施的操作、行为转化为类中的数据成员(属性、字段),和艺术(行为、操作)。

2. 用类举行实例化,为该实例钦命不一致的性质,则创制出不一致的对象。

3. 类是模板,是图形,1般不干活,真正行事的是实例,是指标。

4. 接纳对象,调用对象的措施,就能够干活了

类和类之间结成了对象模型

对象模型中的类是一种自定义的数据类型

面向对象编制程序(Object Oriented
Programming):
概念各类类及它们之间的关联(叁大基本特征:封装,继承,多态

public
公共变量,不能预防随意赋值,数据不安全(化解方法:把变量定义为私家的,然后当着国有的性质来举行走访,能够增强多少的安全性)

privarte 私有字段 加 public
公共性质是对私有字段的卷入(属性是有关字段的1对走访方法,三个getter方法,用于获取字段的值,多少个setter方法,用于安装字段的值)

接轨能够裁减冗余代码

面向对象编制程序相对守旧语言来说消除守旧语言的数据类型只好定义属性,十分的小概描述行为的难题

[]代表可选的 <>表示必填的

类成员包含:字段、常量、属性、方法、索引器、构造函数、析构函数、内部类

用new 调用构造函数创立对象

电脑中的内部存款和储蓄器分为两大块

栈内部存款和储蓄器:速度快,内部存款和储蓄器小(存对象的引用,指向堆内部存款和储蓄器的胚胎地址)

堆内部存款和储蓄器:速度慢,内部存款和储蓄器大(存真正的目的(对象的骨子里多少))

(你必须知道的.net)

const 常量(常量在编写翻译的时候初始化)(只可以在概念的时候起始化

readonly 在运转时早先化(只可以定义在章程外部)不能对只读的字段实行赋值,

readonly字段只可以在概念的时候(编写翻译的时候)或在构造函数上(运转的时候)初始化

静态方法只好引用静态字段和字段方法

get set 都出现 读写; 只有get 只读; 只有set 只写;

属性本质上是一对艺术

措施是类或对象的一言一行,是指标间传递音信的建制

办法拥有签名,方法的走访级别、可选修饰符、重回值、名称、任何方法参数(签名是办法分别于别的的类成员)

public(任意档次中都能够访问) private(只幸好此时此刻类内访问)
protected(只可以在继续的子类中访问(出以往父类))
internal(只能在近日程序集内访问)

protected internal(能够在脚下程序集内访问,也足以在跨程序集的子类中访问)

类假使未有访问修饰符,暗许是internal;
类内的成员若是未有访问修饰符,默许是private

在命名空间中定义的因素无法显式地声名 private、protected、protected
internal

 

OO:面向对象

OOP:面向对象编程

OOA:面向对象分析

OOD:面向对象设计

OOAD:面向对象的序列分析与安插

卷入(索引器(访问数组成员))

static 不用成立对象能够一直访问 用static修饰的变量可能属性
通过类名来访问 属于类 对持有目的的话 保留同三个父本(版本)

sealed 密封的 用sealed修饰的法子 变量 类
不能够被延续(拒绝被两次三番)(用 sealed修饰贰个类 这么些类无法再有子类
用sealed修饰的点子 不可能被子类重写)

构造函数不能够写再次回到值类型 普通方法必须有重返值类型(未有重临值写void)

形参

办法中的变量必要求初步化赋值

值参数

ref(引用参数) 定义和引用的时候都要写ref 把变量名(地址)传进去
使用前务供给起先化赋值(当有个别方法必要修改值类型数据时,ref参数平时是适用的)

out(输出参数)弥补return只好回去多少个值的阙如 调用艺术在此之前不须求肯定的被赋值,重临此前必需求赋值

ref 侧重修改 out 侧重输出

params(可变参数数组) 必须放在最后

类中的每2个成员都得以分成实例成员(定义在类类内,没有static修饰符修饰的)、静态成员(定义在类内
使用static修饰(静态成员属于类 不属于特定的对象
必供给经过类名去拜谒
)幸免了创立实例的支付)两类

静态类的全部成员都不可能不是静态的

静态方法能够向来访问静态成员 不能够直接待上访问实例成员(通过对象去做客)

实例方法能够一直访问静态成员

静态成员无需初步化(采取数据类型的暗中同意值)

主意重载(同一类内)同名方法参数列表分裂(重回值不是判定重载的行业内部)

重写:父类中的方法能够被子类举办重写,从而有区别于父类的落到实处

第3步:把父类中的方法(允许子类重写)用virtual修饰;第1步:在子类中运用ovverride重写从父类中持续的虚方法。

new
躲藏父类的同名方法(有意隐藏)是一种静态绑定机制,由对象定义时间控制制
定义的是何许项目 就实施定义的类中的方法 看等号左侧 左侧是概念
左边是实例化(在营造类库时很有用 能够做版本控制)

ovverride 是一种动态绑定机制,由运行时的指标说了算,看等号的右手

构造函数 类里面卓殊的一种方法 名与类名相同 未有回来值
可以起初化成员变量(this 引用类当前的实例)

this 指向类本人、调用本人

构造函数是用new调用的

享有类型都合并自System.Object

GetType(检查对象的品种(重临Type类型))、ReferenceEquals(相比引用)、Equals(检查相等性)、GetHashCode(获得散列值)、ToString(将目的作为字符串使用)

typeof 获取对象的类型音信(传的是体系称称)

Equals(对于字符串 把引用相等 变成了值极度(对于引用类型,调用
ReferenceEquals)) 和 ReferenceEquals(判断引用是或不是等于)

值类型包涵不难数据类型 枚举 结构

引用类型涵盖 类 接口 数组

第4章 引用类型和值类型

类是对象的模板 对象是类的实例

枚举:1组已命名的整形常量
是强类型常量值列别,是一组描述性的名号(各个成分的底子项目是整形的
私下认可值从0开首 依次递增1)

结构(值类型)(也得以有构造函数(只可以声名有参的)) 类是援引类型

不同:  类                          结构

引用类型                    值类型

        能够被延续                  不能够被购并

        可以有默许构造函数          不可能有暗许构造函数

        能够添加无参的构造函数      只好够加上有参的构造函数

        创立对象必须用new           创造对象能够不要new

        类中能够给字段赋值          结构中给字段赋值是一无所长的

一致:都得以分包字段 方法 都落到实处接口

概念结构变量能够毫无new

值类型直接存款和储蓄在栈中

Simple Type; Struct Type; Enum Type

三角形箭头指向父类

值类型指向System.ValueType(全部值类型的父类)

引用类型指向引用类型(存款和储蓄了对值的引用)

值类型和引用类型最终都指向System.Object

把值类型变量赋值给Object类型的时候,会发生自动装箱(boxing)
把Object变量赋值给一个与目的类型相同的值类型变量时, 需求开展拆箱

System.Collections;集合

System.Collections.Generic;集合的泛型

对值类型调用ToString()方法可防止止装箱

第五章 封装、继承、多态

继续:好处:进步代码重用性,实现多态

Inherit(继承):子类和父类存在is-a关系;

当部分类之间且有雷同的属性和作为时,反那有的属性和行事抽象到三个父类中:(差异子类之间且有同壹的功能,并且职能的实现方式也完全相同时,将该办法在父类中落到实处,升高程序代码的可重用性和可维护性;不一致子类之间且有同等的功能,但效益的落到实处格局不均等时,将该情势放在父类中声称,但不提供切实的达成)

此起彼伏有传递性:(直接父类)(能够赢得直接父类的措施)

接轨的单根性:2个类的直白父类唯有2个

base 在子类中代表它的父类; 在子类中调用父类的构造函数

后续中 假若父类写了带参数的构造函数
则暗中认可无参的构造函数就被带参娄的构造函数覆盖了,不存在了;子类中构造函数暗许会调用父类中默许的构造函数(消除办法:1.
在父类中添加私下认可无参数的构造函数; 二.
在子类的构造函数中内定调用父类中存在的构造函数)

有再三再四时的数量起初化顺序:创办子类对象的时候,在实施子类构造函数时,若是有父类,会先调用父类的构造函数,然后调用子类的构造函数(先实例化父类的数据成员,然后再实例化子类的结构成员)

子类继承父类,父类派生子类  子类也叫派生类 父类也叫基类

有持续关系时,执行子类构造函数时事先触发执行父类的构造函数

base 调用父类的章程 调用父类的构造函数

父类未有无参构造函数 子类必须指明调用哪个构造函数

new 静态绑定的一种机制

版本控制:继承环境下是叁个C#编制能够对类进行修改(创制新本子)不会奇怪地转移代码的意思

开创密封类的理由:优化:密封3个类防止了与虚方法有关的种类开发,那允许编写翻译器执行一定的优化
安全性:将类密封消除了由接二连三造成污染的大概(方法和性质也能够使用sealed修饰(被消息包的点子和个性分歧意在子类中三番四遍)

封装encapsulation

包裹机制:属性(字段)、 索引器(数组的拜访)、 方法、
访问修饰符(有用格局:代码隐藏)

当必需公开字段的访问时,推荐使用常量、枚举和只读字段

public、 private、 protected、 internal

品种(命名空间下)的暗许访问修饰符为internal

体系成员的暗中认可访问修饰符为private

内部类

多态(polymorphism(pao li mao fei ze
mu)):
类的子类表现出的表现能够各差异,那种本身称为类的多态性

多态利用虚方法 把子类方法都重写(vartual(启用多态)override(重写)
动态绑定(看new的是哪个目的))

多态使用情形:1个先后有壹组对象(它们是见仁见智的指标,但它们都有共性),检查第3个门类,并且实施合适的格局

第伍章 抽象方法和抽象类

抽象类(用来约束子类的作为(强制达成多态))

用abstract声名,不可能直接实例化(不能new);

是用来作为基类的,用来提供三个派生类可共享的基类的公家定义
位天类继承层次的下边;

抽象类能够涵盖抽象的成员
(抽象属性、抽象方法(未有方法体,用abstract修饰的诀要))可以分包非抽象的积极分子,甚至足以涵盖虚方法;

子类必须兑现抽象方法,除非子类也有所抽象性

数码成员也得以抽象

抽象方法必须用override重写

提供一文山会海约定,约束子类的行事(强制约束)

提供部分共性的一言一动

throw new NotImplementedException()未兑现的不得了

虚方法                          抽象方法

用virtual修饰              用abstract修饰

要有方法体,哪怕是三个分店  不允许的方法体

能够被子类override          必须被子类override

除去密封类都得以写          只幸亏抽象类中

里氏替换原则:

子类的靶子能够替换其父类

父类的指标不可见替换子灰

父类的章程都要在子类中贯彻恐怕重写

父类的可访问性不能够比子类低

虚拟成员或抽象成员不能够是个人的

接口:

接口是1种口径表达定义了类必须贯彻的表现

接口定义了类之间如何心卓绝定义和预期的行为实行相互的契约,显式定义了类之间应当如何开始展览互动

接口就是一组抽象成员的集合

接口类似天抽象基类:继承接口的此外非抽象类型都必须贯彻接口的有所成员

无法直接实例化接口

接口能够包罗事件、索引器、方法和天性

接口不分包方法的落实 也无法包罗字段

类和布局可从两个接口继承

接口自个儿可从多少个接口继承

贰个类同时继承类和接口时必须把类写在最前方

接口成员都以隐式公共的和虚幻的(无法钦赐访问修饰符)

 

知足is-a用再三再四 不满意is-a还拥有类似的效果

接口更得于程序的扩展,抽象类使程序层次结构更明显

不同点

抽象类                              接口

用abstract定义                 用interface定义

只可以一连2个类                  能够兑现七个接口

非抽象派生类必须贯彻抽象方法    达成接口的类完结全数成员

内需override达成抽象方法       直接实现

相同

不能够实例化  包括未落到实处的措施    派生类必须落成未达成的艺术

theftproof(防盗的)   burglarproof(防盗的)

面向接口编制程序(传递接口)

第7章 委托和事件

信托 delegate(最后(本质)是类) 使程序能够在运作时动态调用不相同的章程

它所调用的艺术的名号 该方法的参数 该办法的重临值

一类格局:具有同等的参数与重回值的法子

public delegate int(重临值类型) Call(委托名称)(int num壹, int
num二);委托和艺术必须怀有同样的参数和重临值

概念委托项目

[做客修饰符] delegate 再次回到类型 委托名 (形参表);

表明委托对象

信托名 委托实例名;

成立委托对象(显明与什么方法进行绑定)

委托实例名 = new 委托名(有些类的不二法门);

运用委托调用方法

信托实例名(实参表);

委托项目壹般声名在命名空间内 也得以创立在类内部

信托是壹种数据类型,与类的级别相同
(一般定义在命名空间之内)(除非与某些类关系十三分严密 写到类里面)

艺术与措施之间 类型与类型之间 要保留空行 单行注释写前边

办法内逻辑用空行隔绝

委托链

事件是兼具类型成员身价、有限量的调用以及赋值等格外性状的嘱托

发送事件的类称为“发行者”,也称之为“事件源”

接过事件提类称为“订户”,也号称“接收者”

[修饰符] event 委托名 事件名;

事件其实正是壹种非凡的嘱托对象

delegate void MyEventHandler();

事件的宣示

class

事件的订阅正是向委托的调用列表中添加方法,是透过事件加上运算符 +=
来落到实处的

事件名 += new 委托名(方法名);

要先判断事件指标是还是不是空的

事件:

概念委托(未来针对事件处理函数)

基于My伊夫ntHandler委托证明事件

概念事件的格局(执行事件处理函数)

订阅事件(向事件的委托链中注册格局(事件处理函数))

伊夫ntArgs(是带有事件数量的类的基类)

可怜处理

try块(也许出现相当的代码)catch块(出现十分时对足够的拍卖)

老大指运维时的错误finally(无论有未有那些最后都会实施)善后工作(财富的清理和刑释)throw(抛出非凡)是吧catch块出现的相当继续往上抛

祥和写完的代码 自个儿测了从未别的难点之后再交付测试

System.Exception(异常)

System.SystemException(公共语言运转时引发那一个)

System.ArgumentException:System.ArgumentNullException

System.ArithmeticException:System.DivideByZeroException |
System.OverflowException

System.Data.DataException

System.FormatException

System.IO.IOException

System.IndexOutOfRangeException

| System ApplicationException(用户程序引发那多少个)

throw new Exception(用于抛出新的可怜)

第八章 集合 范型

System.Collections.Generic;(存集合 泛型)

Ienumerable(达成了这几个接口就可以foreach遍历)

<T>(T代表Type类型) | <K,V>(代表泛型)

Icollection 接口是System.Collections
中最基础的接口,定义了聚众类型扶助的一颦一笑

ArrayList(是三个可动态维护长度的联谊(动态数组))(Count(个数))(.Remove(对象名)
| .RemoveAt(索引))

Hashtable(字典)

Queue(队列:先进先出的数据结构(FIFO))

SortedList

Stack(堆栈(后进先出(LIFO)))

Idictionary<K, V> 是Hashtable的泛型版

泛型接口

行使非泛型类达成泛型接口(泛型接口必须钦点数据类型,失去了泛型接口的意思)

使用泛型类实现泛型接口

概念一个泛型类 后面能够用where限制T的类型

where : struct 值类型

where : class 引用类型 类 接口 委托 数组

where : new() 供给求包涵无参数的结构函数 与其它约束共同使用时,
必须最终钦命

where : <基类名> 是钦命类或它的派生类

where : <接口名称> 可钦命多少个接口约束,约束接口也得以是泛型的

where : U T 要么是U类型 要么是U类型的子类

IComparable[<>],Icomparer[<>] 相比较接口

信托名 = () => {方法体};(一条语句能够归纳{}和return);

Lambda表达式 =>(gos to(分隔符))
左侧是参数列表定义(无参数的写括号; 几个参数能够回顾小括号)
左边是方法体的定义方法体的多条语句用大括号括起来

using System;

 

namespace 泛型委托

{

    class Program

    {

        static void Main(string[] args)

        {

            //调用TestMethod

            //法一

            //Call call = Say;

            //TestMethod(call);

            TestMethod(Say);

            Console.WriteLine(“——————————-“);

 

            //法二

            //call = delegate(int num) { return num * 10; };

            //TestMethod(call);

            TestMethod(delegate(int num) { return num * 10; });

            Console.WriteLine(“——————————-“);

 

            //法三

            //call = x => x * 10;

            //TestMethod(call);

            TestMethod(x => x * 10);

            Console.WriteLine(“——————————-“);

 

            Console.ReadKey();

        }

 

        private static int Say(int num)

        {

            return num * 10;

        }

 

        public static void TestMethod(Call call)

        {

            int re = call(10);

            Console.WriteLine(re);

        }

    }

 

    public delegate int Call(int num);

}

泛型类正是三个模板类(泛型参数)

Action 无参数 无重临值的嘱托

Action<T…> 有n个参数 无再次回到值的委托(0 <= n <= 1陆)

Func<T…> 有n个参数 有钦赐重临值类型的寄托(0 <= n <= 1陆)

Binary 二进制

Directory计算机目录结构

DriveInfo总计机驱动器的详细新闻

File、FileInfo

Environment.CurrentDirectory(物理路径)

Exists(检验文件是或不是留存)

文本操作

创办理文件件流

[创造读写]

实践读写操作

[关门读写]

关闭文件流

FileMode枚举 Create(创立新的 已存在就改写) Open(打开)
CreateNew(成立新的 已存在报错) Append

FileAccess

FileShare(None(读占))

StreamWriter创制写入器,写入八个流

大文件读写

Using 语句

落到实处Idisposable接口的类能够用using语句自动释放财富

常用的有(File Font等)

多少个对象用’,’分隔

 

System.Text.Encoding.Default.GetString(bytes(字节数组))字节数组直接转成字符串

System.Text.Encoding.UTF八.GetBytes(info(字符串))将字符串转换来字节数组

写入必写:fs.Flush() 清空缓冲区,确定保障写入文件

优点:

XML文书档案的始末和布局完全分离

互操作性强:作为纯文本格式的文书,可以1本万利也越过防火墙,在差异操作系统上的不等系统里头通讯

标准统1:XML具有合并的专业语法

支撑两种编码

可扩大性强

使用:

数据交换(Json)

Web服务

情节管理

Web集成

参数配制

结点的性质 结点的剧情

XmlDocument 意味着近来XML整个文书档案

DocumentElement属性 获取根节点(Element(成分))

ChildNodes 获取全部子节点

Load() 读取全方位XML的布局

XmlNode 目的表示XML文件的单个节点(不分根结点照旧子结点)
子节点都以XmlNode

Load() 读取全方位XML的构造

InnerText属性 当前节点的值

Name属性 当前结点名称

ChildNodes属性 当前节点的全数子节点

TreeView控件 每回都要清空节点 不然会增加

Tag属性 能够绑定与目的关系的用户定义数据

bookNode.Attributes[“”].value;

SelectSingleNode 选用唯壹的八个结点

SetAttribute(“属性”, “值”) 添加属性

AppendChild() 括号中添加到调用都的子结点的终极

Save()保存

RemoveChild() 删除节点

系列化/反种类化(serialization)

GUI图形用户界面

[Serializable]特点标志的才足以类别化(想要类别化 他的父类也要标记)

System.Runtime.Serialization;命名空间下

BinaryFormatter(贰进制格式化器)

SOAP:简单对象访问协议

[NonSerialized]不被类别化

System.Runtime.Serialization.Frmatters.Soap;

System.Xml.Serialization

XmlSerializer xs = new XmlSerialiser(类型)

自定义种类化必要让类实现Iserializable接口

自定义构造函数 传对象(完结接口的如出1辙)(反种类化时用)

Procss进程

Thread线程 进度的二个推行单元,三个经过能够涵盖若干个线程

线程是CPU调度和分配的为主单位

种种进度都有3个主线程

suspended  轮询

Process.GetProcesses(“”)内定计算机上的历程列表

ListView控件 帮忙视图(View属性 有多样视图)(Details(展现多列))

ListViewItem ListView的数目项

LargeImageList(大图标列表)

Details 要安装列的成团

多线程

System.Threading 命名空间

Thread类

IsAlive属性 指令当前线程执行情况

IsBackround 提示某些线程是或不是为后台线程

Priority属性

Start方法 运转线程

Join方法 1般出现在Abort之后

Sleep方法

Abort方法 引发ThreadAbortException 开头停止此线程

调用Sleep方法的是类的本身,而不是类的实例

休眠的是该语句所在的线程,而不是别的线程

Highest AboveNormal Normal BelowNormal Lowest(优先级)

Main 方法是主线程

同最近间唯有三个历程能进来代码临界区

在非创立控件的线程中访问控件,那是C#中分化意的

每种控件上都有一个格局叫Invoke(在有着控件的底蕴窗口句柄的线程上,用钦点的参数列表执行内定委托)

IP(Internet Protocol(Internet网络协议))

21 FTP协议

二叁 远程登6

二五 SMTP(Simple Mail Transfer Protocol(不难邮件传输协议))

伍三 域名服务器(DNS)

80 HTTP协议

OSI
开放系统互连参考模型(物理层、数据链路层、网络层(IP协议)、传输层(TCP协议)、会话层、表示层、应用层)

TCP/IP
是1组互联网通信协议的总称,它规范了网络上的富有通讯设施,越发是一个主机与另3个主机

System.Net;

IPAddress IP地址的变换、处理等职能

Dns 当地或远程域名等效果

IPHostEntry Internet主机相关音讯

IPEndPoint 互连网地址表示为IP地址和端口号

套接字

套接字是永葆TCP/IP协议的互连网通讯的基本操作单元(能够作为是见仁见智该机间的历程展开双向通讯的端点,构成了单个
主机内及想个网络间的编制程序界面)

Socket(套接字)

Network Management Software(网络利用)

套接字 分同步 异步二种

一块在通过Socket实行延续、接收、发送操作时,客户机或服务器在接收到对方响应前会处于阻塞状态。它适用于数据处理不太多的场面

异步在通过
Socket举行连接、接收、发送操作时,客户机或服务器不会处在阻塞情势,而是使用callback(回调函数)机制实行连接、接收和发送处理,那样的能够在调用发送或收取的秘诀后直接重返,并继续执行上面包车型大巴程序处理

System.Net.Sockets

常用的八个类:TcpClient(用于连接、发送和接收数据)
TcpListener(用于监听是不是有传出的连天请求)

UdpClent UDP(用户数量报业协会议)

Socket类

面向连接的套接字之间的连接过程能够分成多个步骤:服务器监听,客户端请求,连接确认

属性:

ReceiveBufferSize 接收缓冲区大小

SendBufferSize 发送缓冲区大小

方法:

Colse 关闭TCP连接并释放与TcpClient关联的能源

Connect 将运用主机名和端口号将客户端连到远程TCP主机

GetStream 重返用于发送和接收数据的NetworkStream

Buffer(缓冲区)

TcpListener 具有侦听进入的TCP连接的不二诀窍

方法

AcceptSocket 重回与经过客户端通讯的套接字

AccepTcpClient 接受的总是请求

Start 初叶侦听进入的连接请求

Stop 关闭侦听器

程序集:.exe .dll

次第集结构:程序集清单、类型元数据、IL代码、财富

AssemblyInfo.cs用于配置程序集的(在Properties文件夹下)

元数据:完整地叙述类型(类 接口 结构 枚举 委托)的力量
是.NET平台的壹体化上注重因素

Extends(继承)

Field (源数据)

特性正是用来项目(类、接口、结构等)、成员(属性、方法等)、程序集或模块的代码评释(最根本指标就是自描述)

[CL SCompliant] 强制被诠释项遵守CLS

[DllImport]
允许.NET代码调用任意非托管的C或C++基类库,包涵操作系统中的API

[Obsolete] 过时的 带true就会时有产生编写翻译错误

[Serializable] 可系列化

[NonSerialized] 不可连串化

[WebMethod] 可通过HTTP请求调用

Attribute 全数属性的基类

自定义性格类要在结尾缀上Attribute

GetType() typeof()

反射(reflection) 反射用于在运转时经过编制程序方式获得类型音信

Assembly

AsseblyName

EventInfo

MemberInfo

MethodInfo

ParameterInfo

PropertyInfo

Type t = Type.GetType(“类型名称”);

t.GetMethod();获取相应档次的有着国有艺术

t.GetFields();获取相应档次的兼具国有字段

t.GetProperties();获取相应档次的全数公共属性

t.GetInterfaces();获取相应档次的兑现或持续的具备接口

t.BaseType;获取第三手父类

t.IsAstract;(是否架空的)

t.IsSealed(是还是不是密封的)

t.IsGenericTypeDefinition(是或不是泛型定义)

t.IsClass(是或不是类)

t.IsInterface(是还是不是接口)

早先时期绑定:是壹种创立叁个给定类型的实例并在运营时调用其成员,而不要求在编写翻译时领会它存在的1种技术

反射就是1种晚期绑定(开支越多的系统财富费用使得应用程序能够在运营时收获1些未知的新闻)

Assembly ass = Assmbly.LoadFile(“程序集路径”);加载程序集

Type t = ass GetType(“MyAssembly.Car”);

ass.CreateInstance(“钦定项目”);(使用系统激活器创立类的实例)制造对象(通过反射创造的靶子都是object类型)

Activator(System命名空间下)(使用暗中认可的构造函数创设类的实例)

Instance(实例)

MethodInfo m = t.GetMethod(“方法名”);

m.Invoke(, )八个参数 1个是程序集对象
贰个是object类型的数组(方法重回值也是object类型的)

http://www.bkjia.com/C\_jc/1219199.htmlwww.bkjia.comtruehttp://www.bkjia.com/C\_jc/1219199.htmlTechArticlec\#基础浅学, C# 程序设计 第1章 初识 .NET
Framework 和 C# .NET Framework 是支持生成和平运动转下一代应用程序和 Web
服务的中间Windows组件 .NET Frame…

(P60)

引用类型在栈中储存八个引用,其实际的积存地方放在托管堆。

 

“Dispose()”
—— 用于显式释放能源;

3.
鲜明知道代码完成格局、范例、以及.NET相关接口;

 

ASP.NET
页面在接触各样子控件的事件过后,会递归调用控件的 OnPreRender ,
然后递归地将控件的 ViewState 种类化成多少个字符串,最终递归调用控件的
Render 输出结果。

1.
先进先出算法;

“Finalize()”
—— 用于隐式释放财富;

稍数码相飞机地方还会向您提供补给医疗保险、补充养老保证、补充意外保障、住房无息贷款或经适房等,也要问清楚。

安定的排序
——

3.
XML 和 SOAP 是开放标准,具有很好的移植性;

 

值类型的实例平常是在线程栈上分红的(静态分配),可是在有个别意况下得以储存在堆中。

“Cache”
——
是缓存,用来记录已经施行过的部分数据,比如读取数据库指标是加快展现,裁减服务器的担当,过期时间也是足以本身设定的;

 

1.
在运营时期解析的常量;

“事务” ——
作为叁个逻辑单元执行的一名目繁多操作,贰个逻辑工作单元必须有陆个属性,成为
ACID (原子性、壹致性、隔绝性和持久性) 属性,
唯有这么才能变成1个政工;

1.
对新技巧的接头和远见卓识;

时光复杂度:
最差、平均、最好皆以 O(nlogn)

(P30)
正确的做法是和那2个比你强的人打交道,看她们是怎么想的、如何做的,学习他们,然后最后升任本人的力量才是最要害的。

 

“存款和储蓄进程”
—— 是用户定义的一名目繁多 SQL
语句的汇集,涉及特定表或任何对象的任务,用户能够调用存款和储蓄进程;

三.
带三个字符串参数和二个 Exception 对象参数的构造函数;

1.
“无类型” —— 不反省,甚至不区分指令和数据;

(P110)
在构造函数中,通过 this 能够调用同壹 class 中其余构造函数。

3.
轮转法;

 

 

值类型(不支持多态)适合存款和储蓄C#应用程序的多寡,而引用类型(支持多态)应该用于定义应用程序的表现。

1.
NLHummerH二 : 前序遍历 (Preorder Traversal) ——
访问结点的操作产生在遍历其左右子树此前,即根左右;

(P366)
知识是用来用的,不是用来当摆饰唬人的。

2.
最短 CPU 运营期优先调度算法;

(P1壹3)
抽象类允许包涵抽象成员,但那不是必备的(能够允许3个抽象类中从不任何抽象成员),抽象类中能够有非抽象方法。

 

空间复杂度:
1

空中复杂度:
O(n)

 

2.
既能够在评释时开首化,也得以在构造器中起初化;

防盗链:

 

 

 

(P192)

名称:
XML Web Service

类与类之间存在以下关系:

 

MVC
(Model / View / Controller) 格局是一种采纳的较多的设计情势。 MVC
包括了类对象: Model 是接纳对象;View是它在荧屏上的代表; Controller
定义用户汇合对用户输入的响应措施。

空中复杂度:
O(logn)

进程式编制程序语言为:
程序 = 算法 + 数据;

二.
XML 只连串化对象的国有属性和字段。在 XML
种类化时,私有字段和其余实例化对象就错过了;

(P304)

二.
通过项目标执行熟知 DB 设计、SQL Server 或 Oracle 技术;

3.
参数与参数之间采纳多个连接符“&”来差别;

二.
LNXC90 : 中序遍历 (Inorder Traversal) ——
访问结点的操作发生在遍历其左右子树之间,即左根右;

 

空中复杂度:
O(n)

 

(P73)

 

空中复杂度:
O(n)

2.
关联 (Association)

(P11陆)
接口中的接口成员能够是形式、属性、事件和索引器。

 

new
修饰符和 override
修饰符不可同时用在一个分子上,因为那七个修饰符在含义上相互排挤。

2.

一连能够扩张已存在的代码模块(类);

(P76)
抽象类或许隐含个人构造函数的类都不能够实例化。

 

一.
先来先服务;

最主要字
static readonly (静态常量):

在.NET
Framework
中,由三种体系化学工业机械制:贰进制、XML和回顾地向访问协议(SOAP),它们的优缺点如下:

排序名称:
采取排序 (Selection Sort)

 

聚集关系所提到的三个目的是处于分化等的层系上,一个表示全体、1个表示有个别;

(P290)

 

 

(P160)

排序名称:
归并排序 (Merge Sort)

岁月复杂度:
最差、平均都是 O(n二); 最佳是 O(n)

 

ASP.NET页面之间传递参数:

 

 

排序名称:
特其拉酒排序 (Cocktail Sort) (双向的冒泡排序)

 

3.
Session验证;

 

 

(P228)

排序名称:
急忙排序 (Quick Sort)

 

 

不难操作:
较难

2个历程至少含有2个线程;

5.
最短作业优先法;

问:
定制的十二分类应该继续哪个类? 应包涵如何构造函数?

支持通信协议:
HTTP、TCP(可扩张)

(P13一)
声可瑞康(Karicare)(Nutrilon)个风云类似于声圣元(Nutrilon)个拓展了包装的寄托项目标变量。

(P40)

2.
背后的参数每二个数码参数以 “名称 = 值”的款型出现;

岁月复杂度:
最差、平均、最佳都以 O(nlogn)

一.
利用贰个问号“?”代表 U哈弗L 地址的最终数据参数的起头;

(P3八)
全数的值类型都是密封的,所以非常小概派生出新的值类型。

“Application”
—— 是公私的,全数人都能看出;

“函数” ——
平常是数据库已定义的办法,它接受参数并回到某系列型的值,并且不关乎特定用户表;

三.
耳熟能详设计格局的2三种格局,精通各种情势UML图

 

 

 

对象作业方式:

连续的为重用代码而留存的说辞已经越来越脆弱,因为“组合”能够很好地代表继承的扩张现有的代码的意义,而且“组合”的展现越来越好(至少能够防患“类爆炸”)。继承的留存相当大程度上是用作“多态”的底蕴,而非扩充现有代码的艺术。

(P145)

支撑通讯协议:
HTTP

(P1陆伍)
应用交流排序基本思维的重点排序方法有: 冒泡排序和急迅排序。

主要字
const (静态常量):

汇集是事关关系的一种,是较强的涉及关系,强调的是欧洲经济共同体与局地之间的关联;

(P1捌3)
作为设计者,应该拥抱变化、利用生成,而不是规避变化。

 

伍.
明白怎么样面对葡萄牙语面试;

重载只是一种语言特征,与多态非亲非故,与面向对象也无关;

三.
层层反馈队列算法;

从上述认识来看,接口实际上是组成着多态而来的,它的最大的天职正是落到实处多态,而多态又是面向对象最精华的冲突。驾驭了多态,也就控制了面向对象的精华。但精通多态必须先知道和控制接口,只有丰硕驾驭接口的定义,才能更加好地选拔多态。

(P227)

一.
在编写翻译时期解析的常量;

 

时光复杂度:
最差、平均、最好都是 O(nlogn)

ItemCreated
事件在 DataGrid 创造表格时接触。

引用类型的对象总是在进度堆中分红(动态分配)。

多态是为着完成另多少个目标—— 接口重用;

 

“5险1金”
——
养老保证、医疗保障、失去工作保障、人身意外加害保障、生育保证。“一金”指的是住宅公积金。

 

二.
亟须在申明同时就初阶化;

二.
带3个字符串参数(常常是音信)的构造函数;

“完全二叉树”
——
叶子结点仅在层次最大的两层出现,对于自由1结点,左子树中度只相当于右子树高度或许右子树中度加壹;

 

在C#中,new
关键字可用作运算符、修饰符或约束。

(P1二7)
委托在编写翻译的时候鲜明会编写翻译成类。

 

一对单位公积金比例上得非凡高,所以您报酬扣得也很多,那表示公司交的钱愈来愈多,而要是买房时,这几个钱都以您本身的。所以,那一部分收入无法忽视。

引用类型和值类型都接二连三自
System.Object 类,不一样的是,大概全部的引用类型都一直从 System.Object
继承,而值类型则持续其子类,即间接接轨 System.ValueType 。

 

(P80)
栈的访问速度比堆要快,但栈的能源有限。

跨平台:

“修内”四要素:

排序名称:
希尔排序 (Shell Sort)

(P1伍)
报酬 ——
一定要问清楚是税前照旧税后,那一点并非多说。此外,还要问清楚,发几个月。很多单位有年终双薪,还有局地单位会发1四-14个月不等。

 

学业调度算法:

(P2八肆)
Session 机制大概供给依靠 Cookie
机制来完毕保存表示的指标,但实在还有别的接纳。

时刻复杂度:
最差、平均、最佳都以 O(dn) (d是常数)

排序名称:
教室排序 (Library Sort)

时刻复杂度:
最差、平均、最佳都是 O(nlogn)

陆.
参天响应比优先法;

(P51)

 

程序员要朝“内”和向“外”七个地点扩张本身的学问和技能:

 

(P35)
语言有“无类型”、“弱类型”和“强类型”3种:

“Session”
—— 是私有的,各类客户端都设有三个见仁见智的 Session 生存期;

支撑状态:
Stateful 或 Stateless

 

 

 

 

三.
LENVISIONN : 后序遍历 (Postorder Traversal) ——
访问结点的操作发生在遍历其左右子树之后,即左右根;

日子复杂度:
最差、平均都以 O(n二)

(P291)

(P10八)
若是想调用子类的 new
方法,用子类的句柄(相对无法用基类句柄)来调用。

帮忙状态:
Stateless

 

(P15)

 

时光复杂度:
最差、平均都以 O(n2);最棒是 O(n)

 

4.
明了 Web 二.0 理念、Blog/Wiki/途观SS 架构、SOA
理念、软件测试,理解网络和任何操作系统;


—— 指的是编辑代码的根底、数据结构思想、设计情势等。

2.
Post 方式 —— Request.Form[“***”]

“wait()”
—— 是线程交互时,如果线程对三个壹并对象 X 发出一个 wait
的调用,该线程会暂停实施,被调用对象进入等待状态,知道被提示或等候时间到。

 

(P95)

排序名称:
插入排序 (Insertion Sort)

 

 

装进能够隐藏完毕细节,使得代码模块化;

 

排序名称:
2叉树排序 (Binary Tree Sort)

(P222)

 

(P278)

泛化 ——
指类与类之间的继续关系、接口与接口之间的连续关系或类对接口的兑现关系;

 

一.
U奥迪Q3L 链接地址传递 —— QueryString

岁月复杂度:
最差、平均都是 O(n二);最佳是 O(n)

(P3玖)
引用类型能够包含 Null 值, 值类型不能。

 

1.
泛化 (Generalization)

1.
检查Refer;

 

“单项绑定”
—— <%# Eval(“username”) %>

 

简单操作:
简单

(P2八三)
Session 在服务器和客户端各保留三个副本,关闭浏览器与否与 Session
是或不是留存尚未其余涉及。

 

1.

 

三.
“强类型” —— 严俊地在编写翻译期进行检查;

“ViewState”
—— 类似于 ASP 中的 Hidden
控件,用来记录页面中央控制件的情事,首要在页面间传递消息时用;

 

(P63)

时光复杂度:
平均是 O(nlogn); 最坏的情状下是 O(n贰)

(P104)

接口:

 

“双向绑定”
—— <%# Bind(“title”) %>

4.
叩问软件工程进度,精通数据结构的定义和技巧;

贰.
为财富文件添加数据签名;

聚合 ——
指当对象 A 被投入到指标 B 中,成为指标 B 的组成都部队分时,对象 B 和 对象 A
之间为汇集关系;

 

实行功效:

凭借 ——
指对七个绝对独立的靶子,当3个对象承担构成另二个对象的实例,或许依赖另2个度喜爱那二个的服务时,那多少个对象时期首要突显为借助关系;

 

 

(P37)

岁月复杂度:
最差、平均、最佳都是 O(nlogn)

 

 

 

空间复杂度:
1

“==”判断符号左右七个Object 是或不是针对统壹内部存款和储蓄器地址;

 

(P玖2)
假如未有写静态构造函数,而类中富含带有初步值设定的静态成员,那么编写翻译器会自动生成私下认可的静态构造函数。

4.
聚合 (Aggregation)

“重载
(Overload)” ——
指允许存在八个同名函数,而那几个函数的参数表分化(或者参数个数区别,只怕参数类型不一致,只怕两者都不如);

 

不安定的排序
——

规范传递数据格式:
不标准

(P275)

(P79)
internal protected 的语意应该是 “internal || protected”

(P31一)
在面试前边,面试者应对应聘公司全数驾驭。比如公司的局面、业务、今后迈入等。对合营社文化领悟是或不是深远,是您超出其他应聘者的1个优点。

(P99)

 

 

空中复杂度:
O(k)

二.
“弱类型” —— 检查很弱,仅能严苛地分指令和数据;

(P88)
虚函数的目标就在于落到实处多态性。

4.
Application 传递

丰盛利用
.NET Framework 功效:足够

跨平台:

准确传递数据格式:
精确

它们的指标都是为着
—— 代码重用

 

(P2九)
事情都以人做出来的,关键是人。

 

 

四.
名目繁多反馈队列;

 

目的作业格局:
丰硕(单次呼叫、单壹对象、前端启用)

 

 

 

 

答:
定制的十一分类应从 Application.Exception 派生。依照预订,非凡名应以
Exception 结尾, 应包罗 Exception 基类定义的3个公共构造函数:

 

排序名称:
桶排序 (Bucket Sort)

 

“修外”五要素:

 

(P45)
DateTime 为 Struct 类型。

进度调度算法:

关联 ——
指对于八个相对独立对象,当多个指标的实例与另1个目的的部分特定实例存在一定的呼应关系时,那两个指标之间为关联关系;

3.
Session 传递

(P285)

面向对象编程语言为:
程序 = 对象 + 音信;

1.
深远通晓面向对象编制程序思想;

 

 

3.
只好够用于修饰类中的成员;

执行效能:

(P一伍三)
System.Text.Encoding.Default.GetBytes(strTmp).Length —— 里面的 Default
属性,在私下认可意况下,英文字母用二个字节表示,汉字用双字节表示。

 

 

岁月复杂度:
最差、平均、最佳都是 O(n)

“覆盖
(Override)” —— 指子类重新定义父类的虚函数的做法;

叁.
既可用来修饰类中的成员,也可修饰函数体内的部分变量;

 

(P112)

 

 

操纵调用哪二个,但无法哪个都不调用(至少选1个)。尽管不钦赐的话,一般会调用无参数的构造函数,因为这是三个类的暗许的构造函数。

空中复杂度:

(P肆3)
装箱正是将值类型转换为引用类型的进程,并从栈中搬到堆中。而拆箱正是把引用类型转换为值类型。

 

(P288)
XML Web Service 与 .NET Remoting

GET
请求:

 

 

 

(P288)
XML 注释 : <!– –>

 

 

 

(P72)
Random r = new Random(unchekced(int)DateTime.Now.Ticks));

空间复杂度:

1.
默许的无参构造函数;

 

“满2叉树”
—— 对于全体结点都落得最大的2叉树;

二.
对于拥有聚合关系的两个对象,全部目的会制约它的重组对象的生命周期。部分类的靶子不能够独立存在,它的生命周期重视于全体类的对象的生命周期,当全体消失,部分也就随即消失;

一.
二进制连串化的最大优点是:
类型数据足以精确地球表面示出来。因为二进制系列化对象的国有和民用成员,所以在反体系化的时候能够忠诚地重建出该对象的事态;

ItemDataBound
事件在多少绑定到对应的行后触及。

5.
Server.Transfer 传递

 

二.
视图 (View):
是应用程序中用户界面相关的局地,是用户看到并与之并行的界面;

空间复杂度:
(L+&)n

(P128)
委托是三个类,它定义了章程的项目,使得能够将艺术当做另一个措施的参数来进行传递,这种将艺术动态地赋给参数的做法,使得程序有所更加好的可扩张性。

涉及关系所涉及的三个指标是居于同八个层次上的;

子类被组织时必然会先调用父类的构造函数,但足以用
base 关键字选取调用哪个构造函数。

(P16)
关于加班,国家有规定:若是礼拜三、星期天突击的话,能够博得健康报酬贰倍的加班费;要是是5一、拾1如此法定的假日加班的话,能够获取健康薪给3倍的加班费。

壹.
模子
(Model):是应用程序的主导部分,模型表示业务数据,也许工作逻辑;

4.
预先级法;

 

“接口是商行最有价值的财富。设计接口比用一批类来促成这么些接口更费时间,而且接口要求消耗更昂贵的人工的年华”。

(P18八)
abstract 修饰符不得以和 static、virtual 和 sealed
修饰符一起行使,不过能够和 override 修饰符1起使用。

 

 

三.
操纵器 (Controller):工作便是按照用户输入控制用户界面数据呈现和换代
Model 对象的事态;

2.
精通C#编制程序语言特点;

 

 

排序名称:
堆排序 (Heap Sort)

1.

排序名称:
气泡排序 (Bubble Sort)

(P146)

丰裕利用
.NET Framework 效用:不足够

 

——
从狭义上说,接口是指特定的函数集合,1般是用 Interface
证明的,它表示叁个措施集合,那么些集合被称之为1个命名接口。

名称:
.NET Remoting

(P36) GAC
—— Global Assembly Cache
(全局应用程序集缓存),它解决了多少个程序共享某三个先后集的难点。

——
从广义上说,凡是3个类提供给外部使用的局地都得以被喻为接口。广义接口的确实意义是在类的继续中反映多态的意义,那种接口又被叫作抽象类接口。

 

空中复杂度:1

 

 

 

在待排序的文件中,若存在五个基本点字相同的笔录,经过排序后那些拥有相同关键字的记录之间的相持次序保持不变,该排序方法是平安无事的;若持有同等关键字的记录之间的相持次序产生变化,则那种排序方法是不安静的。

空中复杂度:


DataBind 的轩然大波中,ItemCreated 和 ItemDataBind
是更进一步主要而且时不时要用到的两个事件。

 

 

 

关系与聚集的分别:

2.
轮转法;

(P12三)
显式为接口的情势钦赐 public 修饰符是不法的。

排序名称:
基数排序 (Radix Sort)

“Cookie”
—— 是保存在本机的文本,记录短小的新闻,除非 Cookie
过期,否则会一贯存在;

(P288)

(P201)

“Equals()”判断多少个Object 是不是一致 (全数成员值一样);

 

“sleep()”
—— 是使线程甘休一段时间的办法。在 sleep
时间距离期满后,线程不必然立刻恢复生机械运输行。


—— 指的是新技巧的喜出望外、知识的广度、重视扩展性等。

(P47)

当二个主次开头运转时,它正是二个历程。进度包括运行中的程序和顺序所选用到的内部存款和储蓄器和系统资源;

3.
依赖 (Dependency)

(P27六)
在数额绑定控件的 艾德itItemTemplate 或 InsertItemTemplate 中要使用 Bind
函数。

(P238)