如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
....
/NUMPAGES20
实验二委托、事件与继承
一、实验目的
掌握扩展函数的用法;
掌握C#委托和事件的用法;
掌握C#继承和多态概念;
掌握常用接口的使用方法。
二、实验容
(实验过程中编写的程序复制到本文件中,下课整理后上交)
编写一个静态类MyExtensions,扩展.NETFramework基本类型的功能。
1)定义一个扩展方法IsPalindrome,扩展string类的功能,来判断字符串是否为回文(指顺读和倒读容都一样的文本)。为提高程序效率,该方法中不能直接调用Reverse方法。
2)定义一个扩展方法ReverseDigits,允许int将自己的值倒置,例如将整型1234调用ReverseDigits,返回结果为4321。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespaceexperiment2
{
staticclassMyExtensions
{
publicstaticboolIsPalindrome(thisstringstr)
{
for(inti=0;i<str.Length;i++)
{
if(str[i]!=str[str.Length-1-i])
{
returnfalse;
}
}
returntrue;
}
publicstaticintReverseDigits(thisintnum)
{
intj=0,Reverse_num=0;
int[]a=newint[10];//数组中元素的数量应该是可变的
for(inti=0;;i++)//注意
{
if(num==0)//1?
break;
a[i]=num%10;
j++;
num/=10;
}
for(inti=0;i<j;i++)
{
Reverse_num+=(int)(a[i]*Math.Pow(10,j-i-1));//这儿一定要强制转换成int
}
returnReverse_num;
}
}
classProgram
{
staticvoidMain(string[]args)
{
stringstr;
inta;
Console.Write("Enterastring:");
str=Console.ReadLine();
Console.WriteLine("\""+str+"\""+(str.IsPalindrome()?"is":"isnot")+"apalindrome");
Console.Write("Enteraninteger:");
a=int.Parse(Console.ReadLine());
Console.WriteLine("Thereverseof"+a+"is"+a.ReverseDigits());
}
}
}
应用委托和泛型集合类知识,完成以下程序。
程序框架:
源程序2:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespaceexperment2_2
{
classDelegates
{
//创建委托类型
publicdelegateboolNumberPredicate(intnumber);
staticvoidMain(string[]args)
{
int[]numbers={1,2,3,4,5,6,7,8,9,10};
//生成委托实例
NumberPredicateevenPredicate=IsEven;
//利用委托变量调用IsEven
Console.WriteLine("CallIsEvenusingadelegatevariable:{0}",evenPredicate(2));
//选出偶数
List<int>evenNumbers=FilterArray(numbers,evenPredicate);
//描述并输出
DisplayList("UseIsEventofilterevennumbers:",evenNumbers);//滤过
//选出素数并输出
NumberPredicateprimePredicate=IsPrime;
List<int>Prime=FilterArray_prime(numbers,primePredicate);
DisplayList_prime("UseIsPrimetofilterevennumbers:",
17****21
实名认证
内容提供者
最近下载