1.将字符串转换成时间类型,有几种方式?有什么注意事项?
Convert.ToDateTime(string)
Convert.ToDateTime(string, IFormatProvider)
DateTime.ParseExact()
DateTime.Parse
判断是否为空,是否是时间格式。
2.C#中字符串相加是使用什么操作符?如果需要在循环中构造字符串,要注意什么问题?为什么?
用+号
由于字符串对象是不可变的,所以每次循环都会对操作符左右两边的字符串进行拷贝,并生成一个新的字符串对象。
如何避免拷贝,有能达到拼接目的呢?
如果要使用循环构建一个大的字符串,推荐使用 StringBuilder 代替String,使用StringBuilder的 append() 方法进行字符串连接,并在循环结束后将StringBuilder 对象转为 String 对象。
StringBuilder 的原理是预先分配了一个足够大小的缓冲区,然后循环的过程就是往缓冲区里填充数据,比使用“+”做字符串连接的效率要高很多。
3.用Lamdbd表达式写一个委托,该委托有2个int参数,返回2个参数和的平方。
Func
4. 结构和类的区别
(1)class 是引用类型,structs是值类型
(2) class 创建在堆上,structs创建在栈上
(3) class支持继承和多态,Struct不支持
5.说明下多浏览器的兼容性的实际问题
(1)集合类对象问题
问题说明:IE下,可以使用 () 或 [] 获取集合类对象;Firefox下,只能使用 [ ]获取集合类对象。
解决方法:统一使用 [] 获取集合类对象。
(2)eval(”idName”)问题
IE下,可以使用 eval(”idName”) 或 getElementById(”idName”) 来取得 id 为 idName 的HTML对象;Firefox下,只能使用 getElementById(”idName”) 来取得 id 为 idName 的HTML对象。
解决方法:统一用 getElementById(”idName”) 来取得 id 为 idName 的HTML对象。
const问题
问题说明:Firefox下,可以使用const关键字或var关键字来定义常量;IE下,只能使用var关键字来定义常量。
解决方法:统一使用var关键字来定义常量
frame和iframe问题 window.location.href问题
6.javascript如何实现类的构造,类的方法,以及类的继承,写出示列代码。
function Person(name,age){
this.name=name;
this.age=age;
this.sayName=function(){
}
}
funtion SubType(name)
{
Person.call(this,name);
this.age=age;
}
SubType.prototype=new SuperType();
7.请简单说明一下泛型技术
(1)可以避免装箱和拆箱操作(2)类型安全
泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用
好处是——类型安全和减少装箱、拆箱。提高性能、类型安全和质量,减少重复性的编程任务
8.请简单说明一下异常的处理方式,如果一个异常捕捉后,只是为了记录日志而不进行任何处理之后抛出,如何在重新抛出后保证原异常的堆栈信息不丢失?
在.NET 4.5中现在有 ExceptionDispatchInfo类。
这使您捕获异常并重新抛出它而不改变堆栈跟踪:
ry
{
task.Wait();
}
catch(AggregateException ex)
{
ExceptionDispatchInfo.Capture(ex.InnerException).Throw();
}
这适用于任何异常,而不仅仅是AggregateException。
它是由于等待C#语言功能引入的,该功能将AggregateException实例中的内部异常解包,以使异步语言功能更像同步语言功能。
9.如何防止js注入攻击和SQL注入攻击?
url地址防注入,输入文本框防止注入,过滤关键字符,加过滤器。
1.使用存储过程
2.使用参数传值的SQL语句
3.过滤非法字符,现给出过滤非法字符的函数
10.在很多web系统中,部分功能都是需要客户登录之后才能使用。在各页面中如何判断客户是否登录过?如果很多界面都有这个要求,应当如何处理?
Session 保存。
11 .子类如何调用重载父类的构造函数,在创建对象时,各级类之间的构造函数是按什么顺序调用的,如何判断某个对象是继承一个特定的类?
:Base(参数...)
1,如果继承虚基类,先调用虚基类的构造函数,如果有多个虚基类,按顺序调用。
2,如果继承基类,调用基类的构造函数;如果有多个基类,按顺序调用。
3,如果类中定义了成员对象,调用成员对象的构造函数;如果有多个成员对象,则按成员对象定义的顺序调用;
以使用 Type.IsSubclassOf 判断类的派生, 使用 Type.IsAssignableFrom 判断类的派生和接口继承。
16.多线程中,主线程应如何通知子线程要提前结束处理并正常退出?
var cts=new CancellationTokenSource();
var ct=cts.Token;
var td=new Thread(_=>{
while(!ct.IsCancellationRequested)
{
//your work here
}
Console.WriteLine("thread exit");
});
td.Start();
Console.WriteLine("Press any key to stop the thread");
Console.ReadKey();
cts.Cancel();
Console.ReadLine(



