如何在 C# 中创建可重用的属性

How can I create reusable properties in C#

我通常在编码中做的是

 string s = "1.0";
 
 int i = Convert.ToInt32(s);
 
 double d = Convert.ToDouble(s);

但我试图重新使用e“Convert.ToDouble(s)”这个方法作为“s.ToDouble()s.ToInt()".

可能吗? 如果可能的话,我该怎么做? 请指导我。

你的意思是你需要创建一个新类型 (class) 来拥有一个对象,而不是像这样调用方法 .ToInt()。您可以创建一个扩展字符串 class 的 class,并向您的新 class 添加一个名为 ToInt() 的方法。此方法将 return 一个 Int32 值 (int),从主对象(您的字符串扩展对象)中获取值。

这不是一个好主意,因为正如您所说,您有 Convert 方法。但只要你愿意,你也可以做到。

这对你有帮助吗?

看来,您正在寻找 extensions methods,例如:

public static class MyConvertibleExtensions {
  public static double ToDouble<T>(this T value) where T : IConvertible {
    if (value is null)
      throw new ArgumentNullException(nameof(value)); 

    return Convert.ToDouble(value);
  }
}

有了这个实现你可以把

double d1 = "123".ToDouble();

double d2 = true.ToDouble();

但是请注意,Convert.ToDouble(...) 是将一种类型转换为另一种类型的更自然的方式。