目录
21.什么是强类型,什么是弱类型?哪种更好些?为什么?
强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,
弱类型在执行的时候才会确定类型。
没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。
22.using关键字的作用
1.引用命名空间,也可using 别名-
2.释放资源,实现了IDisposiable的类在using中创建,using结束后会自定调用该对象的Dispose方法,释放资源。
23.ref和out有什么区别
1.都是按引用类型进行传递
2.属性不是变量不能作为out、ref参数传递
3.ref参数必须初始化。out不需要初始化
4.作用,当方法有多个返回值时,out非常有用
- 传递方式:
ref
和out
都是使用传址的方式来传递参数的,即将变量的内存地址直接传递给函数。但是,它们之间在传递参数时的限制不同。
在使用ref
修饰参数时,必须在调用函数之前对参数进行赋值,否则编译器会报错。
而在使用out
修饰参数时,不需要在调用函数之前对参数进行赋值。
24.a.Equals(b)和a==b一样吗?
不一样,a==b仅仅表示a和b值相等,a.Equals(b)表示a与b一致
25.下面这段代码求值
class Class1
{
internal static int count = 0;
static Class1()
{
count++;
}
public Class1()
{
count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
静态构造函数是一种特殊的函数,它不能被显式调用,而是在第一次使用类的静态成员或创建类的实例时自动调用。
上面代码,静态构造函数被调用一次,然后构造函数被调用两次,所以答案是3
26.Math.Round(11.5)等於多少? Math.Round(-11.5)等於多少?
Math.Round(11.5)=12
Math.Round(-11.5)=-12
27.&和&&的区别
1.逻辑运算:&和&&都可作逻辑与的运算
&&具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式
&会计算二个表达式
2.位运算
&可以用作位运算,返回结果是int类型
28.i++和++i的区别
i++
和 ++i
都是自增运算符,它们都可以将变量的值加 1
++i是先给i加1之后将i+1的结果返回
i++是将i的结果返回后,再给i加1
29.as和is的区别
as在转换的同时判断兼容性,如果无法进行转换,返回位null(没有产生新的对象),as转换是否成功判断的依据是是否位null
is只是做类型兼容性判断,并不执行真正的类型转换,返回true或false,对象为null也会返回false。