相关疑难解决方法(0)

C#中的方法组是什么?

在以下情况下,我经常遇到一个错误,例如"无法从'方法组'转换为'字符串'"

var list = new List<string>();
// ... snip
list.Add(someObject.ToString);
Run Code Online (Sandbox Code Playgroud)

当然最后一行有一个拼写错误,因为我忘记了之后的调用括号ToString.正确的形式是:

var list = new List<string>();
// ... snip
list.Add(someObject.ToString()); // <- notice the parentheses
Run Code Online (Sandbox Code Playgroud)

但是我想知道什么是方法组.谷歌也不是MSDN的帮助.

.net c# method-group

336
推荐指数
5
解决办法
15万
查看次数

+ = new EventHandler(Method)vs + = Method

可能重复:
C#:'+ = anEvent'和'+ = new EventHandler(anEvent)'之间的区别

订阅活动有两种基本方式:

SomeEvent += new EventHandler<ArgType> (MyHandlerMethod);
SomeEvent += MyHandlerMethod;
Run Code Online (Sandbox Code Playgroud)

有什么区别,什么时候我应该选择一个而不是另一个?

编辑:如果它是相同的,那么为什么VS默认为长版本,使代码混乱?这对我来说毫无意义.

c# events

73
推荐指数
4
解决办法
5万
查看次数

有和没有"新"的布线事件之间的区别

在C#中,这两行代码之间有什么区别(如果有的话)?

tmrMain.Elapsed += new ElapsedEventHandler(tmrMain_Tick);
Run Code Online (Sandbox Code Playgroud)

tmrMain.Elapsed += tmrMain_Tick;
Run Code Online (Sandbox Code Playgroud)

两者看起来完全相同.当你输入后者时,C#是否只是假设你是指前者?

c# syntax events delegates

14
推荐指数
2
解决办法
3425
查看次数

使用New Handler附加Eventhandler与直接分配它

创建新事件处理程序与直接将其分配给事件的实际差异,优缺点是什么?

_gMonitor.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCollectionChanged);
Run Code Online (Sandbox Code Playgroud)

VS

_gMonitor.CollectionChanged += OnCollectionChanged;
Run Code Online (Sandbox Code Playgroud)

c# syntax events

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

我应该实例化一个新的代表吗?

我刚刚意识到我可以通过两种方式添加事件处理程序:

考虑像这样的事件处理程序:

private void MyEventHandler()
{}
Run Code Online (Sandbox Code Playgroud)

方法1:实例化新的委托

MyObject.MyEvent += new Action(MyEventHandler);
Run Code Online (Sandbox Code Playgroud)

方法2:添加事件处理程序而不实例化新委托

MyObject.MyEvent += MyEventHandler;
Run Code Online (Sandbox Code Playgroud)

应该考虑这两种实现之间有什么区别吗?

.net c# delegates event-handling

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

C#new [delegate]没有必要吗?

我最近一直在玩HttpWebRequests,在教程中他们总是这样做:

IAsyncResult result = request.BeginGetResponse(
  new AsyncCallback(UpdateItem),state);
Run Code Online (Sandbox Code Playgroud)

new AsyncCallback似乎并不是必要的.如果UpdateItem有正确的签名,那么似乎没有问题.那么人们为什么要包括它呢?它有什么用吗?

c# delegates

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

"btn.Click + = new RoutedEventHandler(ButtonClick)"和"btn.Click + = ButtonClick"之间有什么区别?

在C#中,当注册事件处理程序时,您有两个选项(btn类型System.Windows.Controls.Button):

btn.Click += new RoutedEventHandler (ButtonClick)

btn.Click += ButtonClick.

它们之间的语义差异及其含义是什么?

c# wpf

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

C#为什么我在订阅活动时会使用"new"关键字?

订阅2种订阅方式有什么区别?

receiver.ConfigChanged += Config_ConfigChanged;

receiver.ConfigChanged += new EventHandler(Config_ConfigChanged);
Run Code Online (Sandbox Code Playgroud)

似乎它们都以相同的方式工作,但如果是这样,那么使用第二种方法有什么意义呢?

如果取消订阅,以下两种方法的工作方式是否相同?

receiver.ConfigChanged -= Config_ConfigChanged;

receiver.ConfigChanged -= new EventHandler(Config_ConfigChanged);
Run Code Online (Sandbox Code Playgroud)

.net c# events delegates

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

"MouseDown + = new MouseEventHandler(mouseDown)"和MouseDown + = mouseDown之间的区别是什么?

当我使用resharper他总是说

在此输入图像描述

有什么不同?

任何细节都会很好

谢谢大家.

.net c# resharper

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

关于代表的问题

可能重复:
C#:'+ = anEvent'和'+ = new EventHandler(anEvent)'之间的区别

让我们有这个代表:

delegate int Process (int x ,int y) ; 
Run Code Online (Sandbox Code Playgroud)

而这个方法:

int Add (int x , int y)
{
    return x+y ; 
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

有什么区别:

Process MyProcess = Add ; 
Run Code Online (Sandbox Code Playgroud)

并且:

Process MyProcess = new Process (Add) ; 
Run Code Online (Sandbox Code Playgroud)

c# delegates

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

标签 统计

c# ×10

delegates ×5

.net ×4

events ×4

syntax ×2

event-handling ×1

method-group ×1

resharper ×1

wpf ×1