- A+
1.简述 private、 protected、 public、internal 修饰符的访问权限
答
protected : 保护成员,该类内部和从该类派生的类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。 (很少用)
1.使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session变量
3.使用Server.Transfer
4.使用Application
5.使用Cache
6使用HttpContext的Item属性
7.使用文件
8.使用数据库
9.使用Cookie
3.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现
答
public class MainClass {
public static void Main() { Console.WriteLine(Foo(30)); }
public static int Foo(int i) {
if (i <= 0) return 0;
else if(i > 0 && i <= 2) return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
4.C#中的委托是什么?事件是不是一种委托?
答
委托是将一种方法作为参数代入到另一种方法。
是,事件是一种特殊的委托。 //比如:onclick事件中的参数就是一种方法。
5.实现多态的过程中 overload 重载 与override 重写的区别
答
override 重写与 overload 重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要
Override 是进行基类中函数的重写。实现多态。
6.请编程实现一个冒泡排序算法?
答
int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
或者
public static void bubble_sort(int[] x)
{
for (int i = 0; i < x.Length; i++)
{
for (int j = i; j < x.Length; j++)
{
if (x[i] < x[j]) //从大到小排序
{
int temp;
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
}
}
}
static void Main(string[] args)
{
int[] huage = { 1, 5, 2, 9, 3, 7, 6,4,8,0};
bubble_sort(huage);
foreach (var a in huage)
{
Console.WriteLine(a );
}
}
7.描述一下C#中索引器的实现过程,是否只能根据数字进行索引
答
C#通过提供索引器,可以象处理数组一样处理对象。特别是属性,每一个元素都以一个get或set方法暴露。索引器不单能索引数字(数组下标),还能索引一些HASHMAP的字符串,所以,通常来说,C#中类的索引器通常只有一个,就是THIS,但也可以有无数个,只要你的参数列表不同就可以了索引器和返回值无关, 索引器最大的好处是使代码看上去更自然,更符合实际的思考模式.
{
private T[] arr = new T[100];
public T this[int i] //注意,定义索引器。this 关键字用于定义索引器。
{
get
{
return arr[i]; //访问器采用参数
}
set
{
arr[i] = value; //访问器采用参数
}
}
}
class Program
{
static void Main(string[] args)
{
SampleCollection<string> stringCollection = new SampleCollection<string>();
stringCollection[0] = "Hello, World"; //这里 使用索引器进行引用
System.Console.WriteLine(stringCollection[0]);
}
}
-
索引器使得对象可按照与数组相似的方法进行索引。
-
get 访问器返回值。set 访问器分配值。
-
this 关键字用于定义索引器。
-
value 关键字用于定义由 set 索引器分配的值。
-
索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。
-
索引器可被重载。
-
索引器可以有多个形参,例如当访问二维数组时。
8.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
答
使用MVC模式分层
一般为3层
数据访问层,业务层,表示层。
数据访问层对数据库进行增删查改。
业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
表示层为了与用户交互例如用户添加表单。
9.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点: 增加成本。
10.在下面的例子里
using System;
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B(){ y=-1; }
public override void PrintFields()
{ Console.WriteLine("x={0},y={1}",x,y); }
}
当使用new B()创建B的实例时,产生什么输出?
答:
X=1,Y=0;
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫