#堆和栈的界别

栈是编写翻译时期就分配好的长空,由此在代码中必须就栈的高低有明显的概念。局地值类型变量、值类型参数等都在栈内存中。堆是程序运营时期动态分配的内部存款和储蓄器空间,能够依据程序的周转景况调整分配的堆内存大小。

 

#上面程序的实施结果?

inti =
10;

Console.WriteLine(i++);=>10 

Console.WriteLine(++i);=>12

i++表明式的值为i自增在此以前的值,所以打字与印刷10,执行到位后i变成1一,执行++i的时候表明式的值为自增今后的值1二。

#在dotnet中类(class)与结构(struct)的异同?

Class能够被实例化,属于引用类型,是分配在内部存款和储蓄器的堆上的,引用传递。Struct属于值类型,是分配在内部存款和储蓄器的栈上的,复制传递。Int3二、Boolean等都属于结构体。

 

#请叙述属性与索引器的分别   

本性通过名称标识。索引器通过签订契约标识。属性通过简单名称或成员访问来拜会。索引器通过成分访问来走访。属性能够为静态成员或实例成员。索引器必须为实例成员。属性的get访问器未有参数。
索引器的get访问器具有与索引器相同的形参表。属性的set访问器蕴涵隐式value参数。除了value参数外,索引器的set访问器还怀有与索引器相同的形参表。

 

#
C#中的接口和类有如何异同

实例化、继承、成员方面

 

#
抽象类和接口的异议

相同点:
都不能够被一直实例化,都得以由此持续完毕其抽象方法。

分化点:
接口援救多两次三番;抽象类无法落到实处多两次三番。接口只好定义行为;抽象类既能够定义行为,还大概提供落成。
接口只包括方法(Method)、属性(Property)、索引器(Index)、事件(伊芙nt)的署名,但不能够定义字段和含有达成的法子;抽象类能够定义字段、属性、包括有落到实处的办法。 

#虚方法的行使场馆、与接口的界别

子类重新定义父类的某2个措施时,必须把父类的方法定义为virtual。在概念接口中不能够有方法体,虚方法能够。完毕时,子类能够不重复定义虚方法,但万一3个类继承接口,那必须兑现那几个接口。

 

#C#中的委托是怎么,事件和信托的涉嫌。

委托可以知晓为函数指针。委托和事件尚未可比性,因为委托是连串,事件是目的,上边说的是委托的对象(用委托格局贯彻的风云)和(标准的event格局实现)事件的界别。事件的内部是用委托完结的。因为对于事件来讲,外部只可以“注册自身+=、注销本身-=”,外界不得以收回别的的注册者,外界不可以积极触发事件,因而即使用Delegate就无奈展开上边的主宰,因而诞生了风云那种语法。事件是用来阉割委托实例的,类比用2个自定义类阉割List。事件只好add、remove自身,不可能赋值,事件之中就是三个private的寄托和add、remove多少个章程

 

#能用foreach遍历访问的对象的供给

急需完成IEnumerable接口或注解GetEnumerator方法的品类。

 

#using关键字有怎么样用?什么是IDisposable?

using能够评释namespace的引进,还足以兑现非托管财富的放飞。达成了IDisposiable的类在using中开创,using截止后会自动调用该指标的Dispose方法,释放财富。using用于能源自由时,等价于try……finally。

 

#Web瑟维斯基本概念

WebService消除的三个难题:接口的本人描述;采取Http协议等常规协议,不用写原始的Socket;基于Web服务器,不占用80端口之外的端口。

UDDI(Universal
Description Discovery and Integration)用来机关发现WebService的合计。

WSDL(WebServiceDefination Language)是对Web瑟维斯上的主意名、参数举行描述的磋商。对接口的自描述。

SOAP(Simple
Object Access Protocol)是对参数、重返值以什么样的格式实行传递进行描述的合计,是对报文的格式规范。

SOAP和HTTP的涉及:SOAP基于Http协议的,和一般网页区别的是网页重临HTML,SOAP则是顺应SOAP协议的XML数据。

 

#横纵表转换

纵表结构
TableA 

Name

Course

Grade

张三

语文

75

张三

数学

80

张三

英语

90

李四

语文

95

李四

数学

55

 横表结构 TableB

Name

语文

数学

英语

张三

75

80

90

李四

95

55

0

 

纵表转横表:

selectName,

sum(caseCourse
when ‘语文’ then Grade
else 0 end) as Chinese,

sum(caseCourse
when ‘数学’ then Grade
else 0 end) as Math,

sum(caseCourse
when ‘英语’ then Grade
else 0 end) as English

fromTableA

groupby
Name

横表转纵表:

select*
from

(

      
select Name,Course=’语文’,Grade=Chinese
fromTableB

      
union

      
select Name,Course=’数学’,Grade=Math
fromTableB

      
union

      
select Name,Course=’英语’,Grade=English
fromTableB

)
awhere grade!=0

orderby
Name,Grade desc

#除去姓名、年龄重复的记录,只保留ID最大的一条

1    
tom       18   3000

2    
tom       18   3300

3    
gal  28   2000

4    
tim  28   2200

5    
gal  28   2020

select* from
T_Duplicate where ID in

(

      
select MAX(id) from T_Duplicate

      
group by name,age

)

相关文章

网站地图xml地图