代码改变世界

面试题目

2013-04-08 15:25  Yang-Onion  阅读(169)  评论(0编辑  收藏  举报

记录一下在面试过程中碰到的一些面试题目,以供查缺补漏。

1:typeof()和GetType()的区别

  同:它们都返回System.Type类型

  异:typeof(x),只是一个运算符,只能针对类型进行运算。即x,只能为类型,不能是一个类型变量。

        x.GetType(),继承自Object的方法,任何一个object变量都可以使用。

typeof和GetType的区别
Person p = new Person();

//正确
typeof(Person);

//错误
typeof(p);

//正确
p.GetType();

//错误,继承自Object的GetType()是一个实例方法,需要实例化一个对象对能调用
Person.GetType();

//Object中GetType()方法的定义
public Type GetType()

2:枚举类型加一个[flag]标志有什么特别和意义?

 

3:如何约束一个泛型的类型?

a、where T:Struct(备注:类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。)

b、where T:Class(备注:类型参数必须是引用类型;这一点也适用于任何类、接口、委托或数组类型。)

c、where T:new()(备注:类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new() 约束必须最后指定。)

d、where T:<Base Class Name>(备注:类型参数必须是指定的基类或派生自指定的基类。)

e、where T:<interface name>(备注:类型参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型的。)

 

4:求一个数据表中缺失的最大和最小ID。例如:ID(1,2,3,6,8)那么它缺失的最小ID就是4,最大ID就是7。

SELECT MIN(IDS) AS MINIDS ,MAX(IDS) AS MAXIDS  FROM 
(
   SELECT ID+1 AS IDS FROM T
) A
WHERE A.IDS NOT IN
(
  SELECT ID FROM T
)
AND A.IDS 
(
  SELECT MAX(ID) FROM T   
)

 5:按位与、或、异或、取反

 

按位与运算符(&)

运算规则:0&0=0;   0&1=0;    1&0=0;     1&1=1;
即:两位同时为“1”,结果才为“1”,否则为0

按位或运算符(|)

运算规则:0|0=00|1=11|0=11|1=1;
即 :参加运算的两个对象只要有一个为1,其值为1。

异或运算符(^)

运算规则:0^0=00^1=11^0=11^1=0;
即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。

取反运算符(~)

运算规则:~1=0;   ~0=1;
即:对一个二进制数按位取反,即将0变1,1变0。

 

 

 

home page tracking
NutriSystem Diet