在基类.NET上创建Extension方法

时间:2011-01-05 20:15:12

标签: .net extension-methods

  

可能重复:
  Static extension methods

所以我知道扩展方法只适用于对象实例,就像执行

一样
public static string stringBig(this string inString) {
     return inString.ToUpper();
}

仅适用于string

的实例

但是我正在尝试制作像Double.TryParse这样功能的东西,这样我就不必这样做了

Double myDouble = someOtherDouble.DoubleParseDifferent("4.324802348203498");

我希望能够做一些像

这样的事情
Double myDouble = Double.DoubleParseDifferent(someRandomString);

现在我知道我实际上无法做到这一点,所以我可以采取哪些替代方法或方法。

3 个答案:

答案 0 :(得分:3)

您可以创建一个名称相似的类:

static class MyDouble { ... }

答案 1 :(得分:2)

实现TryParse的唯一可能替代方式我可以想到(因为你要求的是不可能的)将创建一个普通的静态方法,但返回一个< EM>可空

public static double? TryParseEx(string value) { /* new improved parse code here */ }

var result = TryParseEx("1234.56");

这样您就不需要像普通TryParse ...

那样的输出参数

如果!result.HasValue,则解析不成功。否则,只需阅读result.Value属性即可获得解析结果。

答案 2 :(得分:1)

由于您要添加字符串解析方法,为什么不在字符串

中添加扩展名
public static Double ParseDifferent( this string inString) {
     return ...
}