小编Jas*_*son的帖子

C#:将扩展方法添加到基类,以便它们出现在派生类中

我目前在System.Windows.Forms.Control上有一个扩展方法,如下所示:

public static void ExampleMethod(this Control ctrl){ /* ... */ }
Run Code Online (Sandbox Code Playgroud)

但是,此方法不会出现在从Control派生的类中,例如PictureBox.我是否可以创建一个不仅出现在Control中的扩展方法,而且对于从Control派生的类,而不必进行显式转换?

c# intellisense extension-methods

9
推荐指数
3
解决办法
1万
查看次数

IObservable会有类似IQueryable的添加吗?(.NET Rx)

在System.Reactive库未来在.NET 4.0中新的IObservable/IObserver框架是非常令人兴奋的(见链接).

现在推测可能为时尚早,但是还会有一个(缺乏更好的术语)为这些新接口构建的类似IQueryable的框架吗?

一个特定的用例是协助在源处预处理事件,而不是在接收呼叫的链中.例如,如果你有一个非常'chatty'的事件接口,使用Subscribe().Where(...)它将通过管道接收所有事件,客户端进行过滤.

我想知道的是,是否会有类似于IQueryableObservable的东西,这些LINQ方法将被"编译"为Subscribe源中的某些"智能" 实现.我可以想象某些可以使用这种框架的网络服务器架构.或者SQL Server(或任何RDBMS)的附加组件如何允许.NET代码接收新的数据通知(代码中的触发器),并且需要在服务器端过滤这些通知.

linq system.reactive

8
推荐指数
1
解决办法
1655
查看次数

UpdatePanel与"传统"AJAX有何不同?

我的朋友告诉我,因为我只在我的asp.net网站上使用更新面板,所以我真的没有使用直接的AJAX功能.他在说什么?

asp.net ajax updatepanel

3
推荐指数
1
解决办法
1708
查看次数

如何将第一响应者从一个UIView"转移"到另一个UIView?

我有一个UIView子类(CustomView为了这个问题的目的),它有自己的所有touches事件处理(开始,移动,结束,取消).我也有一个重叠UIButton的兄弟姐妹CustomView.

例如,我的视图层次结构如下所示:

  • UIView(控制者的观点)
    • 带框架的CustomView(0,0,300,300)
    • 带框架的UIButton(0,0,100,50)

我希望CustomView在用户拖出UIButton后捕获触摸事件.通过调试日志记录,看起来UIControlEventTouchDragExit事件是要截取的事件(尽管它不会触发,直到触摸距离按钮大约100个像素,但这对此问题并不重要).

理想情况下,当触发拖动退出事件时,按钮将停止接收触摸移动事件,CustomView将获得一个touchesBegan事件(即使我需要以某种方式假装自己),并且所有未来的触摸事件(touchesMoved等)将被发送到CustomView.

我尝试了以下,它没有任何影响:

-(void)btnTouchDragExit:(id)sender
{
    UIButton * btn = sender;
    [btn resignFirstResponder];
    [customView becomeFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

我认为底层UITouch对象(在触摸事件中是一致的)不会被重新定位到指向CustomView.我怎样才能达到预期的效果?

iphone uibutton uiview uitouch first-responder

3
推荐指数
1
解决办法
8690
查看次数

如何删除MVC URL路由中的"详细信息",但保留其他操作?

我想为具有正常CRUD操作的控制器设置路由,但希望详细信息操作不在URL中显示"详细信息".Stackoverflow似乎配置了这种类型的路由:

http://stackoverflow.com/questions/999999/
http://stackoverflow.com/questions/ask
Run Code Online (Sandbox Code Playgroud)

使用这个类比,我的路线目前看起来像:

http://stackoverflow.com/questions/Details/999999/
Run Code Online (Sandbox Code Playgroud)

通过添加以下路线,我可以Details删除:

routes.MapRoute("Q1", "questions/{id}", 
    new { controller = "Questions", action = "Details" });
Run Code Online (Sandbox Code Playgroud)

但是,在控制器上启动其他操作(例如,/questions/new对于此示例)则抱怨无法解析id.

有没有办法设置路由,以便我不必手动输入所有其他操作(MapRoute"items/create","items/delete"等)到Global.asax.cs?我基本上想要第二条路线:

routes.MapRoute("Q2", "questions/{action}", 
    new { controller = "Questions", action = "Index" });
Run Code Online (Sandbox Code Playgroud)

...并且如果{id}匹配整数,并且{action}如果它是字符串,则让路由引擎使用路由Q1 .这可能吗?

asp.net-mvc asp.net-mvc-routing

2
推荐指数
1
解决办法
1500
查看次数

验证日期时间是按月递增的

我有一个包含60个DateTime对象的列表(按升序排序),需要验证每个日期比列表中的前一个日期大1个月.

例如,以下日期列表将有效,因为它们会增加一个月而不会丢失:

Jan-2009
Feb-2009
Mar-2009
Apr-2009

但是,以下日期列表无效,因为2009年2月缺失:

Jan-2009
Mar-2009
Apr-2009

这一天无所谓,只考虑月份年份.

这样做有效/漂亮吗?

c# linq performance compare date

1
推荐指数
1
解决办法
853
查看次数

是否可以使用VS2008自动挂接C#中的事件?

我最近从vb.NET切换到C#,在visual studio中发现连接事件非常烦人.在VB中,我可以从左上角的下拉菜单中选择一个控件,右上角的事件下拉,该方法将自动创建并使用"handle"附加到控件.我知道在C#中不支持,但似乎我必须遍历每个控件并在页面和代码隐藏上手动添加事件.是否有一种更容易/更快的方法来执行此操作,就像在VB中一样,或者它是如何实现的?谢谢!

.net c# events visual-studio-2008

1
推荐指数
1
解决办法
264
查看次数