9.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
答:不是。可以用任意类型
具体资料参考:http://www.isstudy.com/cjc/1373.html
摘要: 索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。它可以使得像数组那样对对象使用下标。它提供了通过索引方式
索引器
索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。它可以使得像数组那样对对象使用下标。它提供了通过索引方式方便地访问类的数据信息的方法。
声明类或结构上的索引器时,可以使用this关键字,信息:网站源代码例如:
public int this[int index] //声明索引器 { // get and set 访问 } |
class SampleCollection<T> { private T[] arr = new T[100]; public T this[int i] { get { return arr[i]; } set { arr[i] = value; } } } |
class Program { static void Main(string[] args) { SampleCollection<string> 锁 = new SampleCollection<string>(); s[0] = "索引器的使用"; System.Console.WriteLine(锁[0]); } } |
Hashtable ht = new Hashtable();
ht[object]=object;
例如:
//这种设计仅供教学^_^
class 例子
{
public int a, b, c;
public int this[string 字]
{
get
{
if (字 == "a") return a;
if (字 == "b") return b;
if (字 == "c") return c;
throw new Exception("...");
}
set
{
if (字 == "a") a = value;
else if (字 == "b") b = value;
else if (字 == "c") c = value;
else throw new Exception("...");
}
}
}
例子2:http://blog.sina.com.cn/s/blog_4baa3af3010009zc.html
10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
答:
int Num = this.TextBox1.Text.ToString() ;
int Sum = 0 ;
for (int i = 0 ; i < Num + 1 ; i++)
{
if((i%2) == 1)
{
Sum += i ;
}
else
{
Sum = Sum - I ;
}
}
System.Console.WriteLine(Sum.ToString());
System.Console.ReadLine() ;
方法1:直接循环 内部判断奇偶即可
方法2:2个为1对 结果 -1 只需判断M为奇偶 偶就=-M/2 奇就为=-(M-1)/2+M=(M+1)/2
方法3:未想出,四海兄弟们有想到的请告诉一声
11.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
答:一般为3层
数据访问层,业务层,表示层。
数据访问层对数据库进行增删查改。
业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
表示层为了与用户交互例如用户添加表单。
优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点: 增加成本。
12.在下面的例子里
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;
在执行B的构造函数前会先执行A的构造函数