云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Net软件工程师面试题

Net软件工程师面试题

  • 62 次阅读
  • 3 次下载
  • 2025/5/24 0:05:49

protected:表示受保护的访问,该类内部和继承类中可以访问 .public :表示公共访问,在代码任何位置都可对其进行访问 internal表示内部成员,在同一命名空间内可以访问。 2. C#中的委托是什么?事件是不是一种委托?

委托是指具有相同属性(也称具有相同的函数签名:返回类型相同,参数类型、参数顺序及参数个数相同)的函数或方法的抽象,关键字为delegate。主要用途是三个:1)函数回调;2)传递方法;3)事件机制

事件就是一个狭义的委托,也就是事件是一个用于事件驱动模型的专用委托,对事件的声明, 实际是声明一个私有的委托变量,对委托变量进行封装,即委托变量加上event关键字后,不管其前面的访问修饰符是public还是private,编译器都会将其编译为private。

委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。以委托为参数的函数具有一定的通用性。

使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时(这里用“调用”这个词,是因为此变量代表一个方法),可以依次调用所有绑定的方法。

3. abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗? 不可以一起使用,但是可以和override一起使用。

4. 请叙述属性与索引器的区别。

属性:它是存取类的字段,索引器:Indexer它是特殊的属性,用它可以使用户像访问数组一样访问类的成员。

5. 请详述在dotnet中类(class)与结构(struct)的异同。

类class可以进行实例化,它是引用类型,内存分配在栈中,效率高,它有默认的构造函数,有析构函数可以使用 abstract 和 sealed, protected 修饰符。要用new进行初始化,

结构它是属于值类型,内存分配在堆中,效率低,它没有默认的构造函数,但是可以添加构造函数,没有析构函数没有 abstract 和 sealed(因为不能继承) 不能有protected 修饰符 可以不使用new 初始化,但是可以在结构中初始化实例字段。

四.分析程序(每题5分,共25分) (此题不能调试,若发现调试,扣除分数) 1. 写出程序的输出结果 class Class1 {

private string str = \ private int i = 0;

static void StringConvert(string str) { str = \ }

static void StringConvert(Class1 c) { c.str = \ }

static void Add(int i) { i++; }

static void AddWithRef(ref int i) i++; }

static void Main() { int i1 = 10; int i2 = 20; string str = \ Class1 c = new Class1(); Add(i1);

AddWithRef(ref i2); Add(c.i);

StringConvert(str); StringConvert(c); Console.WriteLine(i1); Console.WriteLine(i2); Console.WriteLine(c.i); Console.WriteLine(str); Console.WriteLine(c.str); }

} 10 21 0 str

{ string being converted 2.写出程序的输出结果 public abstract class A {

public A() {

Console.WriteLine('A'); }

public virtual void Fun() {

Console.WriteLine(\ } }

public class B: A {

public B() {

Console.WriteLine('B'); }

public override void Fun() {

Console.WriteLine(\ }

public static void Main() {

A a = new B(); a.Fun(); } }

解析:主函数 A a = new B();首先声明了一个A的对象a,但被赋给不同于A的对象B,在此期间分别调用了A类的构造函数和B类的构造函数,然后调用a的fun()函数,因为a的fun()函数是虚函数,被b的fun()的函数覆盖,所以实际执行的是b的fun().

答案: A B B.Fun()

3.写出程序的输出结果: public class A {

public virtual void Fun1(int i) {

Console.WriteLine(i); }

public void Fun2(A a) {

a.Fun1(1); Fun1(5); } }

public class B : A {

public override void Fun1(int i) {

base.Fun1 (i + 1); }

public static void Main() {

B b = new B(); A a = new A(); b.Fun2(a);

a.Fun2(b);

搜索更多关于: Net软件工程师面试题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

protected:表示受保护的访问,该类内部和继承类中可以访问 .public :表示公共访问,在代码任何位置都可对其进行访问 internal表示内部成员,在同一命名空间内可以访问。 2. C#中的委托是什么?事件是不是一种委托? 委托是指具有相同属性(也称具有相同的函数签名:返回类型相同,参数类型、参数顺序及参数个数相同)的函数或方法的抽象,关键字为delegate。主要用途是三个:1)函数回调;2)传递方法;3)事件机制 事件就是一个狭义的委托,也就是事件是一个用于事件驱动模型的专用委托,对事件的声明, 实际是声明一个私有的委托变量,对委托变量进行封装,即委托变量加上event关键字后,不管其前面的访问修饰符是public还是private,编译器都会将其编译为private。 委托是一个类,它定义了方法的类型,使得可以

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com