1.public delegate void OnDBOperate();
public class UserControlBase : UserControl
{
public event Operate OnNew;
private void toolBar_ButtonClick(object sender,EventArgs e)
{
if(e.Button.Equals(BtnNew))
{
//请在以下补齐代码用来调用触发OnNew事件。
--------;(1分)
-------- ;(1分)
}
}
}
2.
class A{
public void SayHello(){
Console.WriteLine("Hello, I'm {0}.", this.GetType().ToString());
}
}
class B:A{}
class C:B{}
class D{}public void PrintA(){
ArrayList list = new ArrayList();
list.Add(new A());
list.Add(new B());
list.Add(new C());
list.Add(null);
list.Add(new D()); foreach (object obj in list){
//判断是否为A的子类
bool isA = ———————————— (2分)
if (isA){
A a = (A)obj;
a.SayHello();
}
}
}
public class UserControlBase : UserControl
{
public event Operate OnNew;
private void toolBar_ButtonClick(object sender,EventArgs e)
{
if(e.Button.Equals(BtnNew))
{
//请在以下补齐代码用来调用触发OnNew事件。
--------;(1分)
-------- ;(1分)
}
}
}
2.
class A{
public void SayHello(){
Console.WriteLine("Hello, I'm {0}.", this.GetType().ToString());
}
}
class B:A{}
class C:B{}
class D{}public void PrintA(){
ArrayList list = new ArrayList();
list.Add(new A());
list.Add(new B());
list.Add(new C());
list.Add(null);
list.Add(new D()); foreach (object obj in list){
//判断是否为A的子类
bool isA = ———————————— (2分)
if (isA){
A a = (A)obj;
a.SayHello();
}
}
}
解决方案 »
- 传地址还是传值??
- 在VS2005中Web Services如何加密
- Developer Express .NET v7.1安装问题
- 请教关于调用VC6的DLL中方法时,如何正确使用out和ref修饰方法的参数?
- 关于using引用的简单问题.
- (C#)请教一下通向WINDOWS编程的书籍!
- 警告 121 CA2000 : Microsoft.Reliability 对象的所有引用超出范围之前,对该对象调用 System.IDisposable.
- 请问如何限定textbox的显示属性为16进制?
- C# MDI问题
- 请问session怎么编写啊,谢谢
- win 7 access 2007 连接的问题
- 服务里访问不了自己注册的映射盘
第一道题不会做啊,怎么跟我之前看到的委托不一样啊
第二道题 bool isA = obj is A
if (OnNew != null)
OnNew(sender, s);
请问一下,你的s从哪里来?怎么没看到定义?
应该是 OnNew(sender, e);
可以换成bool isA = (obj==null? false:((obj.GetType()).IsSubclassOf(new A().GetType())));
吧???
1.bool isA = obj is A 有is这个语法吗?我怎么看起来is A 像算法,这里要填的是程序哦
2.我怎么觉得第一题你的回答,完全没有用到public delegate void OnDBOperate();这个委托,会不会答案里面有OnDBOperate这个?
第一题,估计你写错了
public event Operate OnNew;
应该是
public event OnDBOperate OnNew; 参考
http://msdn.microsoft.com/zh-cn/library/8627sbea(v=vs.80).aspx第二题
参考
http://msdn.microsoft.com/zh-cn/library/scekt9xw.aspx
我的测试如下:
用is的结果:
Hello, I'm ConsoleApplication1.A.
Hello, I'm ConsoleApplication1.B.
Hello, I'm ConsoleApplication1.C.
请按任意键继续. . .
Hello, I'm ConsoleApplication1.B.
Hello, I'm ConsoleApplication1.C.
->
typeof(A)这么写效率高当我用list[0]读出第一个跟直接再new是不是一样的
------------------------------------------
不一样,是同一类型的不同实例但#7写的是等价的,因为类型一样。
第二道题:bool isA = (obj==null? false:((obj.GetType()).IsSubclassOf(list[0].GetType())));
换成bool isA = (obj==null? false:((obj.GetType()).IsSubclassOf(new A().GetType())));
结果好像是一样的,问一下new A()所得到的东西是不是就是list[0]里面存得
-----------》public delegate void Operate();