相关疑难解决方法(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万
查看次数

仅返回字符串中的数字0-9

我需要一个可以在VBScript和.NET中使用的正则表达式,它只返回字符串中的数字.

例如,以下任何"字符串"应仅返回1231231234

  • 123 123 1234
  • (123)123-1234
  • 123-123-1234
  • (123)123-1234
  • 123.123.1234
  • 123 123 1234
  • 1 2 3 1 2 3 1 2 3 4

这将在电子邮件解析器中用于查找客户可能在电子邮件中提供的电话号码并进行数据库搜索.

我可能错过了类似的正则表达式,但我确实在regexlib.com上搜索.

[编辑] - 在设置musicfreak的答案后添加了由RegexBuddy生成的代码

VBScript代码

Dim myRegExp, ResultString
Set myRegExp = New RegExp
myRegExp.Global = True
myRegExp.Pattern = "[^\d]"
ResultString = myRegExp.Replace(SubjectString, "")
Run Code Online (Sandbox Code Playgroud)

VB.NET

Dim ResultString As String
Try
      Dim RegexObj As New Regex("[^\d]")
      ResultString = RegexObj.Replace(SubjectString, "")
Catch ex As ArgumentException
      'Syntax error in the regular expression
End Try
Run Code Online (Sandbox Code Playgroud)

C#

string …
Run Code Online (Sandbox Code Playgroud)

c# regex vb.net vbscript code-generation

66
推荐指数
4
解决办法
6万
查看次数

如果可用,使用C#方法组有什么好处吗?

处理类似的事情时,List<string>您可以写下以下内容:

list.ForEach(x => Console.WriteLine(x));
Run Code Online (Sandbox Code Playgroud)

或者您可以使用方法组执行相同的操作:

list.ForEach(Console.WriteLine);
Run Code Online (Sandbox Code Playgroud)

我更喜欢第二行代码,因为它对我来说看起来更干净,但这有什么好处吗?

c# method-group

19
推荐指数
4
解决办法
2240
查看次数

标签 统计

c# ×3

method-group ×2

.net ×1

code-generation ×1

regex ×1

vb.net ×1

vbscript ×1