- Error和Exception的区别
Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。
Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。
- New有几种用法?
有3种,第一种是,实例化如:New Class()
第二种是,public new 隐藏基类的方法
第三种是,在泛型类申明中的任何类型参数都必须有公共的无参构造函数。
在 C# 中,new 关键字可用作运算符、修饰符或约束。
new 运算符
用于创建对象和调用构造函数。
new 修饰符
用于向基类成员隐藏继承成员。
new 约束
用于在泛型声明中约束可能用作类型参数的参数的类型。
new 修饰符(C# 参考)
在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。隐藏继承的成员意味着该成员的派生版本将替换基类版本。在不使用 new 修饰符的情况下隐藏成员是允许的,但会生成警告。使用 new 显式隐藏成员会取消此警告,并记录代之以派生版本这一事实。
若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并使用 new 修饰符修饰该成员
new 运算符(C# 参考) 用于创建对象和调用构造函数。
例如: Class1 o = new Class1(); new 约束(C# 参考)
new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
当泛型类创建类型的新实例时,将此约束应用于类型参数,如下面的示例所示:
class ItemFactory where T : new() { public T GetNewItem() { return new T(); } }
- 概述反射和序列化
反射,提供了封装程序集,模块和类型对象,可以用反射动态地创建类型的实例,将类型绑定到现有对象,或者从现有对象获取类型,然后调用类型的方法访问字段和属性。
序列化,将对象转换为另一种媒介传输的格式过程。如序列化一个对象,用Http通过Internet在客户端和服务器之间传递该对象,在另一端用反序列化从该流中重新得到对象。
- 能用foreach遍历访问的对象需要实现?
需要实现IEnumerable接口和GetEnumerator()方法