手机网站源码 php,网站开发 net,网站排名软件包年,之梦英语版网站怎么做#xff08;12.24#xff09;
C#介绍#xff1a;《第一章》
特点#xff1a;语法简洁#xff0c;面向对象#xff0c;支持绝大部分的web标准#xff0c;强大的安全机制#xff08;垃圾回收器#xff09;#xff0c;兼容性好#xff08;遵循.NET的公共语言规范【CL…12.24
C#介绍《第一章》
特点语法简洁面向对象支持绝大部分的web标准强大的安全机制垃圾回收器兼容性好遵循.NET的公共语言规范【CLS】从而能跟其他语言开发组件兼容完善的异常处理机制。 C#与.Net相辅相成.Net Framework有两个主要组件公共语言运行时CLR和类库。
C#项目入门《第二章》
using[需导入的命名空间] namespace[自己的命名空间] class[类] main方法[程序的主入口方法]
主入口方法main中通常不写具体逻辑代码只用作类实例化和方法调用。
Console类表示控制台应用程序的标准输入流输出流和错误流。Read/ReadLine方法控制台读入分别为int/string 类型。 Write/WriteLine方法来向控制台输出分别为输入后不换行/输出后换行。
命名规范 用有意义的名字定义命名空间例如公司名产品名。 接口的名称加前缀‘I’ 类名最好能体现类的功能 方法名一般为动宾短语 定义成员变量时最好加前缀‘_’。
C#基础语法《第三章》
整数类型 有符号sbyte8-128~127short16int32long64 无符号byte8ushort16uint32ulong64 浮点类型 float7double15~16 需要使用float类型变量时必须在数值的后面跟随f或者F 字符类型 char类
变量 静态变量static 有效范围可以跨类甚至可以达到整个应用程序内直接以 [类名.静态变量] 的方式在其他类中使用。
常量 const静态常量常量的值必须在声明时就进行初始化。 readonly常量进行动态赋值动态常量只能在构造函数中进行赋值在运行时确认数值
运算符 逻辑运算符与或|||非 位运算符位与【同为1则结果为1】位或|【同为0则结果为0】位异或^【二进制表示相同为0否则为1】取反~【】 移位运算符左移位,右移位
数据类型转换 使用convert类进行转换可进行显式类型转换
C#流程控制语句《第四章》
ifif…else if…else switch语句switch判断参数{ case 常量值1语句块1 break; … defaul:语句块n1 break; } while ,do…while for循环以及变体 跳转语句用于提前结束循环。break;循环结束 和 continue;结束本次循环
C#数组《第五章》
一维数组创建先声明再用new关键字进行内存分配初始化使用 二维数组创建先声明再用new关键字进行内存分配初始化使用 数组与Array类可以使用Array类中的各种属性或者方法对数组进行各种操作 数组的基本操作 1.使用foreach遍历数组foreach【类型】【迭代变量名】in 【集合】{ 语句 } 2.对数组进行排序 sort方法只能对一维数组进行排序Array.Sort(arr); reverse方法用于反转一维Array中元素的顺序
C#字符串《第六章》
提取字符串信息 1.获取长度Length属性 2.获取指定位置的字符直接用下标即可 3.获取子字符串索引位置indexOf返回搜索的字符串首次出现的索引位置lastIndexOf返回搜索的字符串最后一次出现的索引的位置 4.判断字符串首尾内容startWithendWith返回true or false 字符串操作 1.拼接 使用 ”“ 运算符 2.比较字符串Equals 3.大小写转换ToUpperToLower 4.格式化字符串 string类提供了一个静态的Format方法用于将字符串数据格式化指定的格式包括货币指数定点number百分比十六进制 Format也可以根据日期时间按照某种标准格式输出DataTime类型格式 5.截取字符串 .Substring (int startIndexint length) 6.分割字符串.Splitchar[] separator 7.去除空白内容.Trim() 8.替换字符串.Replace(char Ochar,char Nchar) newstr strold.Replace ( ‘,’ , ‘*’ );
可变字符串类StringBuilder类由于使用‘’会产生一个新的string对象会在内存中创建新的字符串对象。而提供可变的字符序列StringBuilder类大大提高了频繁增加字符串的效率降低系统开销。 程序中定义创建一个StringBuilder对象用new进行实例化 类使用 1…Append“string:将文本或字符串追加到指定对象的末尾 2…AppendFormat“{0C0}”,Num自定义变量的格式并将值追加到stringBuilder对象的末尾 3…insert0“软件”将字符串添加到当前StringBuilder对象中的指定位置 4…Removeint startIndex,int lenth:移除指定数量的字符 5…Replacestringold,stringnew:用另一个指定的字符来替换StringBuilder对象内的字符
StringBuilder和string的区别string本身是不可改变的只能赋值一次每一次内容发生改变都会生成一个新的对象然后原有的对象引用新对象。而StringBuilder每次操作都是对自身对象进行操作而不是生成新对象其所占空间会随着内容的增加而扩充。
C#面向对象程序设计《第七章》
由面向过程发展而来他将数据和对数据的操作看作是一个不可分割的整体将现实问题简单化。 面向对象的描述OO设计思想。 1.对象随处可见的一种事务就是对象对象是事务存在的实体对象可表示为属性行为。类实际上就是封装对象属性和行为的载体而对象则是类抽象出来的一个实例。 2.类就是同一类事务的统称。类是世间事物的抽象称呼而对象则是整个事务相对应的实体。面临实际问题通常需要实例化对象来解决。类是封装对象的属性和行为的载体。 3.三大基本特征封装继承多态。
》类
声明class 字段常见的常量或者变量 属性对现实实体特征的抽象提供对类或对象的访问
private string tradecode;
public string TradeCode
{get{return tradecode;} //getset可以是其他的语句set{tradecode value;}
}构造函数 默认构造函数和有参构造函数 静态构造函数在C#中可以为类定义静态构造函数这种构造函数只执行一次。主要原因类有一些静态字段或者属性需要在第一次使用类之前从外部源中初始化这些静态字段和属性 析构函数自动调用不需要显示调用
方法方法用来定义可执行的操作方法是和类相关联的动作
方法的参数 1.值参数形参和实参按值传递对形参的修改并不会影响实参。 2.ref参数使形参按引用传递即使形参是值类型在方法中对形参所做的任何更改都将反应在实参中使用时方法声明和方法调用都必须显示使用ref关键字 3.out参数用来定义输出参数它会导致参数通过引用来传递跟ref差别在于ref要求变量必须在传递之前进行赋值而out不赋值即可使用同样方法声明和方法调用都必须显示使用out关键字 4.params参数如果有多个相同类型的参数params是一个一维数组主要用来指定在参数数目可变时所采用的方法参数 整体举例在P171
方法的重载不能仅仅根据返回值类型不同进行区分不能仅根据参数是否声明为refout或者params来区分。
类的静态成员
不同的类之间需要对同一个变量进行操作比如一个水池同时打开进水口和出水口水池中的水量可认为是一个共享的变量把共享的变量或者方法用static修饰就被成为静态变量和静态方法静态成员静态成员是属于类所有的在调用时不用创建类的对象直接使用类名调用。
对象的创建及使用
对象的产生操作和销毁。 创建用new关键字调用构造函数创建对象。 C#中提供了this关键字表示本类的一个对象在局部变量或方法参数覆盖了成员变量时可以使用this关键字明确引用的是类成员还是方法的形参。另外还可以作为方法的返回值用来返回本类的对象。 销毁C#有一套完整的垃圾回收机制。何种对象会被.net垃圾回收器视为垃圾 主要包括对象引用超过其作用范围将对象赋值为null。 类与对象的关系类是具有相同或相似结构操作和约束规则的对象组成的集合而对象是某一类的具体化实例
》继承
C#中只支持单继承而不支持多继承子类的可访问性一定要低于或者等于父类的可访问性。 base关键字想在子类的方法中实现父类原有的方法base代表父类对象对比this关键字代表本类对象 使用方法base.property; //调用父类的属性 base.method(); //调用父类的方法 另外base关键字还可以指定创建派生类实例时应调用的基类构造函数
//例如基类Goods定义一个构造函数用来定义的属性赋初值
public Goods(string tradecode,string fullname)
{......
}
//派生类JHInfo中定义构造函数时即可使用base关键字调用基类的构造函数代码如下
public JHInfo(string jhid,string tradecode,string fullname) : base(tradecode,fullname)
{......
}需注意访问父类成员只能在构造函数实例方法或者实例属性中进行因此从静态方法中使用base关键字是错误的。 派生类的构造函数会根据层次结构找到最顶层的基类并调用基类的构造函数然后再一次调用各级派生类的构造函数。析构函数的执行顺序与构造函数的相反。
》多态
C#中类的多态性是通过在派生类中重写基类的虚方法来实现的
1.虚方法的重写
除开构造函数外方法在默认情况下可以显示地声明为virtual为虚方法。定义为虚方法之后可以在派生类中重写虚方法重写虚方法使用override关键字。在调用方法时可以调用对象类型的合适方法。
2.抽象类与抽象方法
如果一个类不与具体的事物联系而只是表达一种抽象的概念或者行为仅仅是作为其派生类的一个基类那就是抽象类“去商场买衣服”用abstract关键字。【访问修饰符 abstract class 类名 基类或接口{ //类成员 }】 跟非抽象类的区别a.抽象类不能直接实例化b.抽象类可以包含抽象成员而非抽象类中不可以c.抽象类不能被密封 类中只要有一个方法声明为抽象方法这个类也必须被声明为抽象类 当从抽象类派生一个非抽象类时需要在非抽象类中重写抽象方法override关键字
3.接口的使用
由于类不支持多重继承但出现多重继承的情况又比较多C#提出了接口的概念通过接口可以实现多重继承的功能接口是一种标准强制性要求派生类必须实现接口约定的规范interface关键字 接口特征a.类似于抽象基类继承接口的任何类型都必须实现接口的所有成员b.接口中不能包括构造函数因此不能直接实例化接口c.接口访问永远是公共的d.接口中的成员不能声明为虚拟或者静态。 接口定义时可提供set,get访问器实现接口成员时必须添加public修饰符不能省略。 接口可以多继承
interface ITest1{}
interface ITest2{}
interface ITest3{}
class Test : ITest1,ITest2,ITest2 //继承3个接口接口之间用逗号分隔
{}ref和params参数使用注意要点 ref必须用ref修饰实参ref参数在调用之前一定要进行赋值 params只能在一维数组上使用不允许使用ref或者out修饰params一个方法最多只能有一个params参数。
抽象类与接口的区别 a.抽象类可以有非抽象方法接口所有的方法都是抽象方法b.抽象类属性中可以有非静态常量接口的所有属性都是静态常量c.抽象类有构造函数接口没有构造函数。d.抽象类一个类只能继承一个父类接口一个类可以同时实现多个接口。
C#异常处理《第十一章》 是System.Exception的直接或间接子类 try…catch语句
try{//被监控的代码
}
catch(Exception ex) //也可以检测抛出多个异常顺序先子类后父类
{//异常处理
}
......//可选添加后续finally代码
finally
{ //程序代码
}throw语句
throw new XXXXXException();
//后也可使用catch进行捕获