zop个人图书馆 2012-11-13 1.C#中数据类型分为哪两类?区别是什么? 值类型、引用类型。值类型保存的是具体的值 引用类型保存的是值的地址 2.基本数据类型有哪些? bool 布尔类型、int 整数类型、byte字节型、char字符型、long 长整型、flaot浮点型、 short 短整型、 double 双精度类型、string字符串类型 3.什么是装箱,什么是拆箱? 装箱:将值类型转换为引用类型、拆箱:将装箱的引用类型转为值类型。 4.C#中有哪些流程控制语句? 判断语句、循环语句、跳转语句 5.什么是变量? 变量是内存中的一块存储区域,是存储数据的基本单元 6.C#提供了哪些一系列丰富的运算符? 算术运算符 关系运算符 逻辑运算符 条件运算符 赋值运算符 7.用户输入行数,用* 打印一个直角三角形图案? for (int j = 1; j <= 5;j++ ) { //for (int a = 1; a <= 5 - j; a++) //如果需要打印等边三角形需要加这个 // Console.Write(" "); for (int i = 1; i <= 2*j-1; i++) { Console.Write("*"); } Console.WriteLine(); } Console.ReadKey(); 8.C# 提供循环结构? while 循环,do…while 循环 for 循环,foreach 循环 9.什么是函数? 函数就是将一堆代码进行重用的一种机制;函数被称为方法。 10.字符串的分割? string[] Split(params char[] separator):将字符串按照指定的分割符分割为字符串数组; string[] Split(char[] separator, StringSplitOptions options)将字符串按照指定的char分割符分割为字符串数组( options 取 RemoveEmptyEntries的时候移除结果中的空白字符串); string[] s = str.Split(new string[] { "小" }, StringSplitOptions.RemoveEmptyEntries); string[] Split(string[] separator, StringSplitOptions options)将字符串按照指定的string分割符分割为字符串数组。 string[] s = a.Split(new char[] { '-' }, StringSplitOptions. None); 11.C#中自定义数据类型是什么? 枚举 12.c#提供了哪些类型的选择结构? if、if…else、switch…case 13.了解什么是面向对象? 面向对象就是使用对象进行程序设。面向对象的编程思想:计算机程序中模拟现实世界中的概念,现实世界的所有事物全都被视为对象,在计算机程序中用相似的实体模拟现实世界中的实体,是设计和实现软件系统的方法。 14.面向对象的基本概念:类?对象?封装?继承?多态? 同一类中的事物总是具有一些共性; 类是具有相同属性和和行为的一组对象的集合。类是用来描述实体的“模板”或“原型”; 对象是面向对象编程的核心部分,是实际存在的具体实体,具有明确定义的状态和行为;对象其实就是“数据”和“函数”的封装体。 封装:封装其实就是有选择性地公开或隐藏某些信息,它解决了数据的安全性问题。封装的特点就是避免非法数据的访问,保证数据的完整性 例:每个人都有自己的思想,具体想什么别人都不知道。 继承:解决了代码的重用问题;继承是利用现有的类创建新类的过程,现有的类称作基类(或父类),创建的新类称作派生类(子类)。 继承是利用现有的类创建新类的过程,现有的类称作基类(或父类),创建的新类称作派生类(子类)。 多态:指不同对象收到相同消息时,会产生不同行为。 --------什么是抽象? 把相同的或相似的对象归为一类的这个过程就是抽象,所以,抽象就是分析问题的方法; 15.如何定义类,如何创建对象? 定义一个类的方法,必须包括五个要素:方法修饰符,方法名,返回类型,参数,以及方法体,例如Add方法: public int Add(int x, int y) { return x + y; } 创建对象的一般语法:类名 引用名 = new 类名(); 16.访问控制权限? 关键字public和private是访问修饰符,用来说明某个成员是否可以从类外部进行访问; 17.成员运算符? 使用成员运算符(.)来访问成员属性或成员方法; 18.什么是属性?构造方法? 属性:对象或实体拥有的特征在类中表示时称为属性。数据表示自身的状态,也称作“属性”或“成员数据。 构造方法:对象实例化的同时就初始化成员变量。构造方法没有返回值类型,也不能有返回值。构造方法是特殊的成员方法,它与类同名。 19.重载构造方法 构造方法是用来初始化成员变量的特殊方法。可以适当地重载构造方法,使初始化对象的方式更加灵活; 方法重载可以方便方法的调用者,但方法重载应遵循三大原则: 方法名相同,参数列表不同,属于同一作用域 20.方法重载? 在同一作用域中用于定义一组方法,这些方法具有相同的名称,并执行类似的操作,但是却使用不同的参数列表;返回值不同的方法不能构成重载。 21.this关键字?静态成员?static关键字? 每个成员方法都有一个隐含的this引用,它总是指向调用它的对象; 声明静态变量使用关键字static。具有全局变量的生命周期(完成了某些全局变量才能完成的功能); 注意:静态成员方法没有this引用; 22.命名空间,namespace关键字;导入命名空间,using关键字。 23.C# 中常用的字符串处理方法: Equals()或==:比较两个字符串的值是否相等 Join():连接字符串 Split():分割字符串 IndexOf():查找某个字符在字符串中的位置 SubString():从字符串中截取子字符串 ToLower():将字符串转换成小写形式 Trim():去掉字符串两边的空格 Replace(“子字串”,“目标字符串”):将子字符串替换为目标字符串 Format():方法用来格式化字符串 24.时间日期类DateTime System.DateTime currentTime=new System.DateTime(); //取当前年月日时分秒 currentTime=System.DateTime.Now; //取当前年 int 年=currentTime.Year; // 取当前月 int 月=currentTime.Month; //取当前日 int 日=currentTime.Day; // 取当前时 int 时=currentTime.Hour; //取当前分 int 分=currentTime.Minute; // 取当前秒 int 秒=currentTime.Second; 获得当前时间 n 天后的日期时间 DateTime newDay = DateTime.Now.AddDays(100); 25.什么是对象数组? 在C#中不但可以声明由原始数据组成的数组,还可以声明由对象组成的数组; //假设已经定义了一个Student类。Student[]stdAry=new Student[5]; 26.C#中实现继承? 实现继承的一般语法是: [访问修饰符] class 派生类名 :基类名 { 成员列表 } 27.访问控制权限-protected? protected修饰符,本类或子类成员友好;受保护的。 28.继承中的构造方法? 父类的构造方法负责初始化属于它的成员变量,而子类的构造方法则只需考虑属于自己的成员变量,不必去关注父类的情况。父类的构造方法执行失败,那么子类的对象也将无法实例化。 29.base关键字? 第一种用途是:在子类的构造方法中,base关键字可以显式地调用父类的构造方法,用于将参数传递给它; class Derived : base(实际参数){ ……} 第二种用途:如果父类和子类中有同名成员,在子类中默认访问是属于自己的那一个成员; base关键字可以明确地指定要访问父类中的成员;其一般语法是: base.成员名;(前提条件是:父类中的该成员不是private的) 30.什么是引用转型? 引用转型(里氏替换原则):基类的引用可以指向派生类的对象,如: BaseClass obj = new DerivedClass(); 31.abstract关键字是用来做什么的? 定义抽象类和抽象方法必须要的abstract 32.抽象方法和抽象类是什么? 抽象类是特殊的类,只是不能被实例化(不能new),有抽象方法的类必然是抽象类。 33.override关键字,virtual关键字? 被重写的方法要是abstract的或virtual的 重写方法指重写基类方法,被重写的方法与原方法原型一模一样 34.使用虚方法 子类中可以使用override关键字重写基类中用virtual关键字修饰的虚拟的基成员 用自己的Cut子类中要重写Cut 35.什么是接口和如何实现接口,interface关键字? 如果某个类中的所有方法都是抽象方法,那么可以考虑将该类定义为接口;定义接口使用关键字interface,一般语法: [访问权限] interface 接口名 { 成员列表 } 注意:接口中不能定义非抽象方法,也就是说接口中不能包含有函数实体; 36.sealed关键字是用来做什么的? 如果将某个成员方法修饰为sealed,则意味着该方法不能被子类覆盖,一般语法: [访问权限] sealed 返回值类型 方法名(参数列表) { …… } 37.类与类之间的关系? 继承关系、实现关系、依赖关系、关联关系、聚合关系、组合关系。 38.IS/AS关键字??? IS判断对象是否是某个类型 AS类型转换,只能转换引用类型 39.运用try块、catch块和finally块处理异常 程序中出现的错误被称为异常;编译时异常一般是指语法错误,可以通过编译器的提示加以修正,这里我们不予讨论; 运行时异常包括: 运行错误:如数组下标越界,除数为0等; 逻辑错误:如年龄超过200岁等。 try块:一般用来监视有可能产生异常的代码部分; catch块:当异常产生后,catch块捕捉异常,并在其中对异常进行处理。 finally块可以确保执行所有的清理工作; 40.C#中异常类的继承体系结构? 41.运用多重catch块处理异常? 多重catch块,来分别捕获不同类型的异常。 42.运用嵌套try/catch块处理异常? 整个语句块可以产生异常,而其中的某个部分又可能产生另外的异常,而我们需要分别进行处理; 43.运用关键字throw处理异常? 使用显式 throw 语句来引发异常。在此情况下,控制权将无条件转到处理异常的部分代码 44.用户自定义异常? 可能要创建用户自定义的异常类;Exception类和其子类都是系统内置的异常,这些异常不一定总能捕获程序中发生的逻辑异常; 45。理解集合的概念? ArrayList是一个可动态维护长度的集合;例: ArrayList students = new ArrayList(); Student scofield = new Student("Scofield", Genders.Male, 28, "越狱狱"); … students.Add(scofield); 46.理解泛型概念? 泛型最常见的用途是创建集合类 泛型集合可以约束集合内的元素类型 典型泛型集合List<T>表示该泛型集合中的元素类型 47.C#中提供了按照索引器进行访问的方法 定义索引器的方式: string this[int index]{ get { return ""; } set { } } string为索引器的类型 [ ]中是参数列表 48.访问 List<T> 与 ArrayList 的对比 相同点:通过索引访问集合的元素;添加对象方法相同;通过索引删除元素。 不同点:List<T>:增加元素时类型严格检查;无需装箱拆箱; ArrayList:可以增加任何类型;需要装箱拆箱。 49.在for循环里如何做死循环? 括号里不必须加限制。 for(i=1;;i++) //两个分号之间的限制条件可以不写 { ......... if(条件)
break; j......... } n-1.分页有哪几种方法? 一般都是用存储过程,或者写一个分页的类 n.如何用c#获取其他软件子窗口的标题栏的文字并保存到记事本中??? 用spy++和api就能做。 spy++ 是获取参数的。 百度一下抓取窗体句柄 有很多例子的 用winapi抓句柄 |
|