值类型和引用类型的区别?
- 将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
- 值类型不可能派生出新的类型,所有的值类型均隐式派生自 System.ValueType。但与引用类型相同的是,结构也可以实现接口。
- 值类型不可能包含 null 值。可空类型功能允许将 null 赋给值类型。
- 每种值类型均有一个隐式的默认构造函数来初始化该类型的默认
是否可以从一个 static 方法内部发出对非 static 方法的调用?
不可以。
- 因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而 static 方法调用时不需要创建对象,可以直接调用。
- 也就是说,当一个 static 方法被调用时,可能还没有创建任何实例对象。
- 如果从一个 static 方法中发出对非 static 方法的调用,那个非 static 方法是关联到哪个对象上的呢?这个逻辑无法成立。
- 所以,一个 static 方法内部不能发出对非 static 方法的调用。
类(class)与结构(struct)的异同?
- Class 可以被实例化,属于引用类型,是分配在内存的堆上的,是引用传递的。
- Struct 属于值类型,是分配在内存的栈上的,是复制传递的。
加分的回答:Int32、Boolean 等都属于结构体。
网友评论