Private:私有成员,在线的内部成员才可以访问。
Protected:受保护成员,该类内部,派生类和继承类中才可以访问。
Public:类型成员的访问修饰符,公共成员,完全公开,没有访问限制。
Internal:在同一命名空间内才可以访问。
Connection:连接对象。
Command:命令对象,指示要执行的命令和存储过程。
Datareader:是一个向前的只读的数据流。
Dataadapter:是功能强大的适配器,支持增删改查的功能。
Dataset:是一个数据级对象,相当与内存中的一张表或多张表。
1. 使用QueryString变量 QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子: a.aspx的C#代码 private void Button1_Click(object sender, System.EventArgs e) { string s_url; s_url = "b.aspx?name=" + Label1.Text; Response.Redirect(s_url); } b.aspx中C#代码 private void Page_Load(object sender, EventArgs e) { Label2.Text = Request.QueryString["name"]; } 2. 使用Application 对象变量 Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。 a.aspx的C#代码 private void Button1_Click(object sender, System.EventArgs e) { Application["name"] = Label1.Text; Server.Transfer("b.aspx"); } b.aspx中C#代码 private void Page_Load(object sender, EventArgs e) { string name; Application.Lock(); name = Application["name"].ToString(); Application.UnLock(); } 3. 使用Session变量 想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。 a.aspx的C#代码 private void Button1_Click(object sender, System.EventArgs e) { Session["name"] = Label.Text; } b.aspx中C#代码 private void Page_Load(object sender, EventArgs e) { string name; name = Session["name"].ToString(); } 4. 使用Cookie对象变量 这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。 a.aspx的C#代码 private void Button1_Click(object sender, System.EventArgs e) { HttpCookie cookie_name = new HttpCookie("name"); cookie_name.Value = Label1.Text; Reponse.AppendCookie(cookie_name); Server.Transfer("b.aspx"); } b.aspx中C#代码 private void Page_Load(object sender, EventArgs e) { string name; name = Request.Cookie["name"].Value.ToString(); } 5. 使用Server.Transfer方法 这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。 a.aspx的C#代码 public string Name { get{ return Label1.Text;} } private void Button1_Click(object sender, System.EventArgs e) { Server.Transfer("b.aspx"); } b.aspx中C#代码 private void Page_Load(object sender, EventArgs e) { a newWeb; //实例a窗体 newWeb = (source)Context.Handler; string name; name = newWeb.Name; }
new:运算符,用于创建对象和调用构造函数
new:修饰符,用于基类成员隐藏继承成员
new:约束。用于在泛型声明中约束可能作用类型参数的参数的类型
Sealed:C#de 修饰符,当对一个类应用Sealed修饰符时,此修饰符会组织其他类从该类继承
5、请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
foreach (System.Windows.Forms.Control control in this.Controls) { if (control is System.Windows.Forms.TextBox) { System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ; tb.Text = String.Empty ; } }
7、在.net中,配件的意思是?
程序集。(中间语言,源数据,资源,装配清单)
8、装箱和拆箱
值类型和引用类型的转换。
就是表现层、逻辑层、数据访问层
需要实现Iterable接口或声明iterable()方法
垃圾回收器;由于内存是有限的,所以当程序不再需要使用某个变量的时候,就需要销毁该对象并释放其所占用的内存资源
微信公众平台 PHP SDK
Wechat-php-SDK
关联性泛型集合类
非关联性泛型集合类
推荐使用集合类
非泛型集合类
线程安全集和类
15.sing关键字有什么用?什么是IDisposable?
Sing 变量 IDisposable 接口 释放非托管资源
2016年9月20日
没有S不指向原来那个对象了,而指向了另一个 String对象,内容为"123",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了
不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用
Bool类,String 类,Guid类,Eval类,DateTime类
IComparable,IDisposable,IAppDomainSetup,ICloneable,IFormattable
2016年9月21日
Value 它的类型和属所声明的类型形同
不支持 可以用接口来继承
System.Object
22、通过超链接怎样传递中文参数?
Server.UrlEncode()
23、AJAX解决什么问题?如何使用AJAX?AJAX有什么问题需要注意?项目中哪里用到了AJAX?
AJAX:无刷新更新页面 不会导致页面重新提交、刷新
定义一个异步对象 XMLHTTP 创建类实例
编码问题 清除服务器端文件的缓存 什么时候使用XML 安全问题
作用就是在不刷新整个页面的情况下,动态刷新一部分页面内容。这样使得用户交互更良好。比如说,点击一个按钮,就展开一个列表,其他页面内容不变。这就是ajax可以做到的功能之一。
24、开放式问题:你经常访问的技术类的网站是什么?
25、你对.net的GC的理解
GC是.NET的垃圾收集器,可以进行内存资源的回收,当一个对象没有任何引用的时候就可以被回收了
26、请你简单的说明数据库建立索引的优缺点
优点:提高系统的性能,数据的唯一性。加快数据的检索速度。加速表与表之间的连接
缺点:耗费时间,随着数据量的增加而增加。占物理空间。对表中的数据进行增加丶删除和修改的时候,索引也要动态的维护。这样就降低了数据的维护速度。
27、Session有什么重大BUG,微软提出了什么方法加以解决?(常考)
答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失可以用Sateserver或SQLServer数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。
28、说说在软件设计中你遇到的以空间换时间的例子?
void swap(int a, int b) { int c; c=a; a=b;b=a; } //--->空优 void swap(int a, int b) { a=a+b;b=a-b;a=a-b; }
29、asp.net中的错误机制。(常考)
1.Page_Error事件 2.ErrorPage属性 3.Application_Error事件 4.Application_Error事件
30、有一个10个数的数组,计算其中不重复数字的个数。{3,5,9,8,10,5,3}
31、下面是一个由*号组成的4行倒三角形图案。要求:1、输入倒三角形的行数,行数的取值3-21之间,对于非法的行数,要求抛出提示“非法行数!”;2、在屏幕上打印这个指定了行数的倒三角形。
*******
*****
***
*
console.writeline(" ******* "); console.writeline(" ***** "); console.writeline(" *** ");
console.writeline(" * ");
32、下面的程序执行结果是什么?
class Person
{
public int Age { get; set; }
}
int i1 = 20;
int i2 = i1;
i1++;
Console.WriteLine(i2);
Person p1 = new Person();
p1.Age = 20;
Person p2 = p1;
p1.Age++;
Console.WriteLine(p2.Age);
答:20,21
33、下面程序的执行结果是什么?
public struct Point
{
public int x;
public int y;
public Point(int x, int y)
{
this.x = x;
this.y = y;
}
}
Point p1 = new Point(100, 100);
Point p2 = p1;
p1.x = 200;
Console.WriteLine("{0},{1}", p1.x, p2.x);
答:200,100 解答:结构体是复制传递的
34、不用JQuery等框架实现AJAX无刷新登录。(常考)
<html>
<body>
<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttp.open("GET","time.asp",true);
xmlHttp.send(null);
}
</script>
<form name="myForm">
用户: <input type="text" name="username" οnkeyup="ajaxFunction();" />
时间: <input type="text" name="time" />
</form>
</body>
</html>
35、Http状态码各是什么意思。
200 服务器已成功处理了请求并提供了请求的网页。
204 服务器成功处理了请求,但没有返回任何内容
301请求的网页已永久移动到新位置。当URLs发生变化时,使用301代码。搜索引擎索引中保存新的URL。
302请求的网页临时移动到新位置。搜索引擎索引中保存原来的URL
304如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引擎机器人,可节省带宽和开销。
400服务器不理解请求的语法。
403服务器拒绝请求
404服务器找不到请求的网页。服务器上不存在的网页经常会返回此代码。
410请求的资源永久删除后,服务器返回此响应。该代码与 404(未找到)代码相似,但在资源以前存在而现在不存在的情况下,有时用来替代404 代码。如果资源已永久删除,应当使用 301 指定资源的新位置。
500服务器遇到错误,无法完成请求。
503服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。 希望能够帮到你。
36、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行?
结论:try{}中的return执行后在没有返回数据时先去执行finally{}中的代码,然后再返回。所以说finally{}在return中间执行。
37、一个数组:1,1,2,3,5,8,13,21...+m,求第30位数是多少?用递归实现;(常考!!!,提示:搜索斐波那契数列)
public static int a = 1; public static int b = 1; public static int c = 0; public static int i = 1; private static int get(int p) { if (p == 0 || p==1) { return 1; } if(i==p) { return b ; } i++; c = a + b; a = b; b = c; return get(p); }
38、产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。(要求使用两种方法)
1.
List<int> lst = new List<int>();
Random r = new Random();
while (true)
{
int temp = r.Next(1, 101);
if (lst.Count == 100)
{
break;
}
if (!lst.Contains(temp))
{
lst.Add(temp);
}
}
for (int i = 0; i < lst.Count; i++)
{
Console.WriteLine(lst[i]);
}
Console.Read();
39、冒泡排序数组(背也要背下来,50%必考!)
function sort (arr) {
for (var i = 0;i<arr.length;i++) {
for (var j = 0; j < arr.length-i-1; j++) {
if (arr[j]<arr[j+1]) {
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
var arr=[2,5,3,1,7,8,78,89];
sort(arr);
40、C#中的委托是什么?事件是不是一种委托?事件和委托的关系。
委托可以把一个方法作为参数代入另一个方法。事件可以理解为指向一个函数的引用。事件是比较特殊的委托,是委托的一种。事件的定义返回值Void,而委托可以是任意类型的返回值,委托是方法的封装,事件是委托的封装。
