Как я могу создать метод ToInt32 в пространстве имен системы? - PullRequest
0 голосов
/ 18 сентября 2018

Как вы знаете, мы можем преобразовать в строку, используя Convert.ToString или ToString.Я хочу сделать то же самое для целого числа, байта и т. Д. Кроме того, я хочу видеть этот метод для каждого объекта, когда я ставлю точку.Как мне написать метод?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Напишите общее расширение, которое преобразует любой тип в Int32:

public static class ObjectExt {
    public static int ToInt<T>(this T obj) => Convert.ToInt32(obj);
}
0 голосов
/ 18 сентября 2018

Вы ищете способ расширения.просто создайте статический класс и статический метод внутри него, например:

public static class Exts
{
     public static int ToInt32(this string x)
     {
          int result = 0;
          int.TryParse(x, out result);
          return result;
     }
}

Конечно, мой метод является примером, и он просто возвращает 0 для любого строкового значения, которое не может быть преобразовано в int, однако вы можете написать любойкод, принять значение по умолчанию в качестве аргумента, выбросить исключение, ...

Тогда вы можете использовать его как:

string a = "123";
int b = a.ToInt32();
int c = "321".ToInt32();
...