2018年9月11日.NET笔试面试题

值类型和引用类型的区别?

  1. 将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
  2. 值类型不可能派生出新的类型,所有的值类型均隐式派生自 System.ValueType。但与引用类型相同的是,结构也可以实现接口。
  3. 值类型不可能包含 null 值。可空类型功能允许将 null 赋给值类型。
  4. 每种值类型均有一个隐式的默认构造函数来初始化该类型的默认

是否可以从一个 static 方法内部发出对非 static 方法的调用?

不可以。

  • 因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而 static 方法调用时不需要创建对象,可以直接调用。
  • 也就是说,当一个 static 方法被调用时,可能还没有创建任何实例对象。
  • 如果从一个 static 方法中发出对非 static 方法的调用,那个非 static 方法是关联到哪个对象上的呢?这个逻辑无法成立。
  • 所以,一个 static 方法内部不能发出对非 static 方法的调用。

类(class)与结构(struct)的异同?

  • Class 可以被实例化,属于引用类型,是分配在内存的堆上的,是引用传递的。
  • Struct 属于值类型,是分配在内存的栈上的,是复制传递的。
  • 加分的回答:Int32、Boolean 等都属于结构体。

你可能感兴趣的:(2018年9月11日.NET笔试面试题)