1.面向对象的三大特性
答:封装, 每个对象都包含啦他能进行操作所需要的所有信息,因此对象不必依靠其他的对象来完成自己的操作,这样的特性叫封装。 继承, 继承代表一种“is-a”的关系,最好好处是少啦好多的代码 多态, 是允许将父对象设置为和一个和多个它的子对象相等的技术,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作,也就是说,父的行为像儿子,而不是儿子的行为像父亲。
2.ADO.NET的五大对象
答:是一种数据访问技术,使得应用程序可以连接到数据库,并以各种方式操作存储在其中的数据。该技术基于.net Framework。ADO.NET软件栈包含两个主要部分:提供者和服务。1.Connection(连接数据库)2.Command(执行T-sql语句)3.DataAdapter(用户填充DataSet,断开模式)4.DataReader(读取数据库,一种读取模式,只是向前的)5.DataSet(数据集,好比电脑的内存)
3.5大访问权限
答:c#中类及类的成员的修饰符 对访问成员没有级别限制: 1.public 公开 类及类成员的修饰符 对访问成员没有级别限制 2.private 私有 类成员的修饰符 只能在类的内部访问 3.protected 受保护的 类成员的修饰符 只能在该类和类的派生类中间访问,不管该派生类和基类是否在同一程序集中4. internal 内部的 类及类成员的修饰符 访问权限在程序集中 5.protected internal受保护的内部 ,如果是继承关系,无论是不是同一个程序集都可以访问,如果不是继承关系,只能在同一个程序集中访问 可以在类前面修饰只有public和internal,如果没有写任何修饰符,默认是internal 我们可以说类的访问权限:1.public class 任何地方该类都可以被访问到;2.internal class只有在同一个程序集内(你可以这样解释:如果想建立一个解决方案,里面有三个项目,那么就有三个程序集,如果你把第一个项目里的类设置为internal class,那么第一项目想调用这个类是不可能的,因为不在同一个程序集中)
4.sql查询第30到40条的数据
答:分页1.select top 10 * from a where id not in(select top 30 id from a order by id) order by id
2.普通写法:select * from a where id between 30 and 40.
5.类好接口的区别
答:
类:描述了一个实体,包括实体的状态,也包括实体可能发出的动作。
接口:定义了一个实体可能发出的动作。但是只是定义了这些动作的原型,没有实现,也没有任何状态信息。
1.接口与类区别:
(1)接口有点象一个规范、一个协议,是一个抽象的概念;
(2)而类则是实现了这个协议,满足了这个规范的具体实体,是一个具体的概念。
(3)从程序角度,简单理解,接口就是函数声明,类就是函数实现。需要注意的是同一个声明可能有很多种实现。
2接口 抽象类
多继承 支持 不支持
类型限制 没有 有,只能是引用类型
方法实现 继承类型中必须给出方法 实现继承类中可以不给出
扩展性 计较麻烦 相对比较灵活
多层继承 比较麻烦,需要借助虚函数 交灵活
6.读取数据库的三个方法
答:1.DataSet+DataAdpater;2.DataTable+DataAdPater;3.DataReader;
7.可是用foreach遍历的条件
答:实现IEnumerable,声明GetEnumerator。
8.有个字符串,把字符串里面的成员添加到数组里面,成员用逗号分开。
答:int i,j=0,k=0;//声明几个整形变量,
char str[]="abdfafa,sdfafaf,sdfssdfaf,sdfafafas,sdddgg";
char list[100][100]; //这个用于存储分离后的各个字符串,二维数组,最多分离100个字符串,每个字符串的元素最多100个
meset(list,0,sizef(list));//使用memset函数,对list中的所有元素赋值为0,sizeof(list)是用于获取list的总占用空间
for(i=0;i<strlen(str);++i)//for循环从零开始,每次循环后,i自增长,循环条件是i必须小于str的长度,否则退出循环,
{
if(str[i]==',')
{//如果str中的第i个字符串为逗号
list[j][k]=0;//分离出的第j个字符串中的第k个字符为0,也就是字符串结束符
++J;//j自动长表示下一个被分离的字符串
k=0;//因为要将字符写到写一个被分离的字符串中,从零开始,
}
else{
否则不是逗号
list[j][k]=str[i];//二维数组list中的第j个字符串str中的第i个字符
++k;//切换到下一个字符
}
}
8.递归算法 1 1 2 3 5 8……….
答:static void main(string[] args)
{
console.writeline(process(30));
console.readline();
}
publice static int process1(int i)
{
if(i==0) return 0;
if(i==1) return 1;
else
return process1(i-1)+process1(i-2);
}
9.asp.net的之间的几种传值方法?
答:1.使用QueryString
2.使用Session
3.使用Server.Transfer
4.Cookie传值
5.Application传值
6.数据库
7.配置文件
10c#中委托是什么?事件是不是一种委托?
答:委托是可以把方法作为参数传入另一个方法。
事件是一种特殊的委托。
11override和重载的区别?
答:重载是方法名称相同,参数或是参数类型不同,进行多次重载以适应不同的需要。
overrider是对基类的重写,以适应需要。
12简述三层架构?
答:通常情况下三层架构是指把业务分为三成:表现层(UI),业务逻辑层(BLL),数据访问层(DAL).
区分代码是为了实现“高内聚,低耦合”的思想。
表现层:通常讲就是展现给用户的界面,即用户使用一个系统的时候所看见的。
业务逻辑层:针对问题的操作,也可以说是对数据层的操作,对数据业务逻辑的处理。
数据访问层:直接操作数据库,针对数据进行增加,修改,删除,查询,等每层之间是一种垂直关系。
优点:分工明确,易于调试,条理清晰,而且具有可扩展性。
缺点:增加成本。
13:MVC模式简述?
答:MVC(Model -View-Controller)模型-视图-控制器
MVC是一种典型的平行关系,没有谁是上谁是下得关系.模型负责业务领域问题,视图负责显示方面的问题,控制器把数据读取出来填充模型交给视图去处理。
验证是在模型中处理。强制性使用应用程序的输入,处理,输出分开。MVC最大的好处是将逻辑和页面分开。
14:什么是装箱和拆箱?
答:从值类型到引用类型的转换是装箱,
从引用类型到值类型的转换是拆箱。
15.net中类和结构的区别?
答:相同点:语法相同。
不同点:
1.类似引用类型,继承自sysytem.object。结构是值类型,继承自system.valuetype,因此不具有多态的特性。但是system.VALUETYPE是引用类型。
2.从职能观点来说,class用于表现行为,结构用来存数数据。
3.class支持继承,可以继承类和接口的继承,结构不支持继承,不能从class继承,也不能作为class基类继承,但是可以继承接口。
4.class可以声明无参数构造函数和析构函数,结构只能声明带参数的构造函数,不能声明析构函数,
5.实例化时类需要使用new关键字,struct声明时可以不需要new关键字,如果不使用new来实例化struct,则其所有的字段都处于为分配的状态,直到所有字段完成初始化,否则引用为赋值的字段会导致编译错误。
6.class的复制可分为深复制和浅复制,必须经过特殊的方法才能完成。struct创建的对象复制简单,可直接使用等号连接就可以。
7class有垃圾回收机制保证内存的回收处理,struct使用完后立即自动解除内存分配。
8作为参数传递时.CLASS是以按址方式传递,而struct是按值方式传递。
16堆和栈的区别?
答:栈是编译时就分配好内存空间,因此你的代码中必须有就栈的大小就有明确的定义,
堆是程序运行期间自动分配内存,你可以根据程序的运行情况分配内存的大小。
17gc是是什么?为什么要有gc?
答:gc是垃圾收集器,程序员不用担心内存分配问题,因为gc会自动管理内存,
要请求回收垃圾,可以使用以下调用方法。sysytem.c(); Runtime.GetRuntime.Gc();
18值类型和引用类型的区别?
答:
1.赋值方式不同:基于值类型的变量直接包含值。将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
2.值类型不可能派生出新的类型:所有的值类型均隐式派生自 System.ValueType。但与引用类型相同的是,结构也可以实现接口。
3.值类型不可能包含 null 值:然
而,可空类型功能允许将 null 赋给值类型。
4.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
19c#中接口和类的异同?
答:不同点:
不能直接实例化接口
接口不包含方法的实现
接口可以多继承,类只能单继承
类可以在不同的源文件之间进行拆分
相同点
接口和类都可以多个接口继承
接口和类都包含事件,索引器,方法,属性。
20集合类?
答:arrylist,queue,stack,hashtable,sortedlist,dictionary。
21,使用的框架技术。
22单例模式?
答
public class Singleton
{
private static Singleton instance;
private Singleton()
{
}
public static Singleton GetInstance()
{
if(instance==null)
{
instance=new Singleton();
}
return instance;
}
}
22.查询表中姓名相同的个数?
答:select count(*) as 个数 from (select name from a order by name having count(*)>1)
23.查询每个月的注册用户?
答select count(*),to_char(regddate,'yyyymm') from A group by to_char(regdate,'yyyymm')
24.把字符串逆序输出?
答: string s="123456";
char[] t = s.ToCharArray();
for (int m = t.Length - 1; m >= 0; m--)
Console.WriteLine(Convert.ToString(t[m]));
Console.ReadLine();
25:截取有逗号的字符串为数组存储?
答:string str="abcdefg;laskdg,dfasd";
int strlen=str.lenght;
string[] s=new string[strlen];
for(int i=0;i<strlen;i++)
{
s[i]=str.strsubstring(i,1);
}
for(int i=0;i<S.lenght;i++)
{
console.writeline(s[i]);
}
}
}
26给你string一个字符串“abcd,as,ccd,dsa”反转这个字符串为"dsa,ccd,as,abcd"
答:string s=“abcd,as,ccd,dsa”;
string[] n=s.Split(,);
List<string> list=new List<string>();
int N=n.length;
for(int i=0;i<n.lenght;++i)
{
list.Add(n[i]);
}
for(int j=N-1;j>=0;j--)
{
console.write(list[i]);
if(i!=0)
console.write(",");
}
}
27:sql语言语句查询每门课都大于80分的学生的姓名?
答:select Distinct name from table where name not in(select name from table where 分数<80)