问题四,关于概念的实际应用(代码题)。公司面试99%要考的,有答案!

如果你是做WEB开发,即使你不懂得类,接口,抽象类,内存分配等的内涵,也没有什么大不了的,照样可以开发复杂的项目。不过,要想自己更进一步的发展,比如要想做架构。那你必须要懂的这些东西。这次摘了一些代码,一般面试是经常出的,主要考你对概念的理解。如果要做框架的话,这些更应该懂了。最后自己亲手写一遍,你会记得更牢。
1,
class Class1 {
    private string str = "Class1.str";
    private int i = 0;
    static void StringConvert(string str) {
      str = "string being converted.";
    }
    static void StringConvert(Class1 c) {
      c.str = "string being converted.";
    }
    static void Add(int i) {
      i++;
    }
    static void AddWithRef(ref int i) {
      i++;
    }
    static void Main() {
      int i1 = 10;
      int i2 = 20;
      string str = "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(#39;A');
    }
    public virtual void Fun()
    {
      Console.WriteLine("A.Fun()");
    }
}
public class B: A
{
    public B()
    {
      Console.WriteLine(#39;B');
    }
    public new void Fun()
    {
      Console.WriteLine("B.Fun()");
    }
    public static void Main()
    {
      A a = new B();
      a.Fun();
    }
}

A B A.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();
      a.Fun2(b);
      b.Fun2(a);     
    }
}

 

2 5 1 6

 

4,

一列数的规则如下: 1、1、2、3、5、8、13、21、34......
  求第30位数是多少, 用递归算法实现。(C#语言)

 

public class MainClass

{ public static void Main()

{ Console.WriteLine(Foo(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);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值