干货,C#开发工程师常见面试题汇总(1)C#开发工程师

/ 福建师范大学经济学院C#开发工程师 / 2017-04-13

汇鱼人才,C#,C#开发工程师

接下来汇鱼人才就为C#开发工程师分享一些常见的面试题,想要了解更多关于C#开发工程师的内容敬请关注汇鱼人才!

 

1.C#property attribute的区别,他们各有什么用处,这种机制的好处在哪里? 
 propertyattribute汉语都称之为属性。不过property是指类向外提供的数据区域。而attribute则是描述对象在编译时或运行时属性的。这两者是有本质区别的。 


2.列举ASP.NET 页面之间传递值的几种方式。 
1.使用QueryString, ....?id=1; response. Redirect().... 
2.使用Session变量 
3.使用Server.Transfer 


3.一列数的规则如下: 112358132134...... 求第30位数是多少, 用递归算法实现。
 public class MainClass 
    { 
        //主函数调用输出低30的数值 
        public static void Main() 
        { 
            Console.WriteLine(Foo(30)); 
            Console.ReadLine(); 
        } 
        //方法封装,参数为第几个,求第30 
        public static int Foo(int i) 
        { 
            if (i <= 0) 
            { 
                return 0; 
            } 
            else if (i > 0 && i <= 2) 
            { 
                return 1; 
            } 
            else 
            { 
                return Foo(i - 1) + Foo(i - 2); 
            } 
        } 
    } 


4.C#中的委托是什么?事件是不是一种委托? 
委托可以把一个方法作为参数代入另一个方法。 
委托可以理解为指向一个函数的引用。是,是一种特殊的委托 


5.override与重载的区别 
 override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要,Override 是进行基类中函数的重写。为了适应需要。

 

6.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty
 foreach (System.Windows.Forms.Control control in this.Controls) 

   if (control is System.Windows.Forms.TextBox) 
   { 
     System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ; 
     tb.Text = String.Empty ; 
   } 


7.在下面的例子里 
using System; 
class A 

public A() 

PrintFields(); 

public virtual void PrintFields(){} 

class B:A 

int x=1; 
int y; 
public B() 

y=-1; 

public override void PrintFields() 

Console.WriteLine("x={0},y={1}",x,y); 

当使用new B()创建B的实例时,产生什么输出? 
 答:X=1,Y=0;x= 1 y = -1 


 8.什么是装箱和拆箱? 

从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。 
例如: 
装箱: int i=0; Object obj=i; 
拆箱: int i=0; Object obj=i; 
int j=(int)obj; 


9常用的调用WebService的方法有哪些? 
 1.使用WSDL.exe命令行工具。 
2.使用VS.NET中的Add Web Reference菜单选项 


10.简要谈一下您对微软.NET 构架下remotingwebservice两项技术的理解以及实际中的应用。
 服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。 


11.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击 
 答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中。 


12.能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。 
 答:IEnumerable GetEnumerator

 
13.abstract classinterface有什么区别
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

 

14.sleep() wait() 有什么区别?
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。



公众号,微信

汇鱼网海峡创乐汇
汇鱼网海峡创乐汇