C # - Пример метода расширения - PullRequest
2 голосов
/ 31 мая 2011

Может, кто-нибудь предоставит мне простой метод расширения, который, например, возводит в квадрат число.

Я составил такой псевдокод:

class Program

int = x
---------------------

public static int square (this int x)

return x * square

Ответы [ 5 ]

4 голосов
/ 31 мая 2011
public static class NumberExtensions
{
  public static int Square(this int n)
  {
    return n*n;
  }
}

Теперь вы можете сказать:

int number=5.Square();
3 голосов
/ 31 мая 2011

Вот как бы вы написали метод:

public static class ExtnMethods 
{
    public static int Square(this int x)
    {
        return x * x;
    }
}

Несколько важных замечаний по поводу приведенного выше кода:

  • Класс должен быть статическим и неабстрактным
  • Параметр this int x указывает, что метод действует на int

Вы можете использовать его следующим образом:

Console.WriteLine(5.Square());
// prints 25
1 голос
/ 31 мая 2011

Метод расширения:

static class MathExtensions {

  public static Int32 Square(this Int32 x) {
    return x*x;
  }

}

Как это использовать:

var x = 5;
var xSquared = x.Square();
1 голос
/ 31 мая 2011
public static class SomeClass { 
   public static int Square(this int x) {
      return x * x;
   }
}
0 голосов
/ 15 сентября 2014

В этом примере я попытался показать вам, как использовать множественный метод Extension в одном выражении.

class Program
{
    static void Main(string[] args)
    {
        int x = 13;
        var ans = x.Cube().Half().Square();
        Console.WriteLine(ans);
    }
}

static class IntExtensions
{
    public static int Half(this int source)
    {
        return source / 2;
    }
    public static int Cube(this int source)
    {
        return (int)Math.Pow(source, 3);
    }
    public static int Square(this int source)
    {
        return (int)Math.Pow(source, 2);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...