C#的一个奇怪语法现象

anguswdm 2010-05-10 10:36:52
问题描述:
假设有类 A,类B, A 和B 都是独立的类,未从任何基类继承。
现:主函数 调用类A的一个方法C,却跳到执行B类的方法C,
类A中的确没有方法C,请问这是什么情况造成的呢?

欢迎大家集思广益。

首先说明:PDB文件没有搞错。
...全文
139 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Alden 2010-05-10
  • 打赏
  • 举报
回复
如果是扩展类只是在A和B之间建立了一种关系。
anguswdm 2010-05-10
  • 打赏
  • 举报
回复
对了,请问您对mono有了解不?

[Quote=引用 10 楼 vrhero 的回复:]
这是C#3.0的扩展方法,Extensions类中定义扩展方法的将影响所有涉及的类(this关键字后面那些)...去看MSDN...

http://msdn.microsoft.com/zh-cn/library/bb383977(VS.90).aspx
[/Quote]
明缘 2010-05-10
  • 打赏
  • 举报
回复
学习了。
wanghui0380 2010-05-10
  • 打赏
  • 举报
回复
恩,的确是扩展方法啊
anguswdm 2010-05-10
  • 打赏
  • 举报
回复
哇,高手在这里,我去看,看完如果是的话就结贴!

[Quote=引用 10 楼 vrhero 的回复:]

这是C#3.0的扩展方法,Extensions类中定义扩展方法的将影响所有涉及的类(this关键字后面那些)...去看MSDN...

http://msdn.microsoft.com/zh-cn/library/bb383977(VS.90).aspx
[/Quote]
vrhero 2010-05-10
  • 打赏
  • 举报
回复
这是C#3.0的扩展方法,Extensions类中定义扩展方法的将影响所有涉及的类(this关键字后面那些)...去看MSDN...

http://msdn.microsoft.com/zh-cn/library/bb383977(VS.90).aspx
anguswdm 2010-05-10
  • 打赏
  • 举报
回复
没啊,普通调用。
[Quote=引用 2 楼 juedaihuaihuai 的回复:]

是不是做多线程或者异步了。
[/Quote]
anguswdm 2010-05-10
  • 打赏
  • 举报
回复
没报错。。。
我贴了代码,见楼上
[Quote=引用 7 楼 singincloud 的回复:]

根据我的了解,如果没关系,编译会报错的……
[/Quote]
singincloud 2010-05-10
  • 打赏
  • 举报
回复
根据我的了解,如果没关系,编译会报错的……
anguswdm 2010-05-10
  • 打赏
  • 举报
回复
A和B真没继承关系,我贴下函数:

A类:
public class ProjectOperations
{
//
}
B类:

public static class Extensions
{
public static bool CanDebug (this ProjectOperations opers, IBuildTarget entry)
{
System.Console.WriteLine(@"D:\monodevelop\monodevelop\main\src\addins\MonoDevelop.Debugger\MonoDevelop.Debugger\Extensions.cs");
ExecutionContext context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors);
System.Console.WriteLine("Extensions CanDebug end");
return opers.CanExecute (entry, context);
}
}


A类调用 CanDebug函数,但是A类这没有这个函数,B类有,调用到B类的这个CanDebug函数了
zbssoft 2010-05-10
  • 打赏
  • 举报
回复
100%有关系,查你的代码吧
q107770540 2010-05-10
  • 打赏
  • 举报
回复
将代码帖上来看看
捷哥1999 2010-05-10
  • 打赏
  • 举报
回复
AB之间肯定有继承的关系!
绝代坏坏 2010-05-10
  • 打赏
  • 举报
回复
是不是做多线程或者异步了。
justindreams 2010-05-10
  • 打赏
  • 举报
回复
你确定,你没有写错?你确定A,B没有关系?

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧