Maison  >  Article  >  développement back-end  >  exemple d'introduction à la méthode d'extension c#

exemple d'introduction à la méthode d'extension c#

黄舟
黄舟original
2017-03-03 13:35:581285parcourir

C#Méthodes d'extension Exemple de démarrage

Définition de la méthode d'extension :

l doit être une classe statique, méthode statique

l Le premier paramètre contient le mot-clé "this", indiquant à quel type

Description du code : L'exemple ici est d'écrire une classe statique, myExtension, une méthode d'extensionAjouter , indiquant que tous les numéros de type INT auront la possibilité d'appeler cette méthode Add, à condition que MonExtension.

Jetons un coup d'œil à l'utilisation :

Description du code : ce code déclare un numéro de type int et attribue la valeur à 7, et puis lors de l'appel de la méthode Add, vous verrez IntelliSense comme suit :

Vous pouvez voir que la méthode d'extension est marquée par une flèche vers le bas. Ensuite, appelez-le, donnez-lui n'importe quel int, puisque j'ai utilisé le mot-clé params, il sera automatiquement analysé en Tableau int, puis utilisez la variable rlt pour le recevoir, et une fois affiché, vous verrez le résultat :



Exemple 2 :


Écrit une méthode pour étendre la chaîne, qui peut normaliser l'anglais. Par exemple, hEllo et WORld seront affichés une fois transmis, Hello World


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace wpfLab1
{
    public static class StrExtensenClass
    {
        public static string GetNormalFormat(this string s)
        {
            s = RemoveExtraSpace(s);
            string[] words = s.Split(' ');
            string ret = "";
            foreach (var word in words)
            {
                ret += StrFstChrUpr(word) + " ";
            }
            return ret;
        }


        public static string RemoveExtraSpace(this string s)
        {
            if (s == null || s.Length <= 1)
            {
                return s;
            }


            bool lastChrIsSpace = false;
            string ret = "";
            foreach (var chr in s)
            {
                if (chr == &#39; &#39;)
                {
                    if (lastChrIsSpace)
                    {
                        continue;
                    }
                    else
                    {
                        lastChrIsSpace = true;
                        ret += chr;
                    }
                }
                else
                {
                    ret += chr;
                    lastChrIsSpace = false;
                }


            }
            return ret;
        }


        private static string StrFstChrUpr(string s)
        {
            if (s == null || s.Length < 1)
            {
                return s;
            }
           
            string lowerStr = s.ToLower().Remove(0, 1);
            string upperStr = Char.ToUpper(s[0]).ToString();
            return (upperStr + lowerStr);
        }
    }
}

Utiliser :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using wpfLab1;
namespace wpfLab1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }


        private void btnHello_Click(object sender, RoutedEventArgs e)
        {
            string s = "hEllo   wOrLd,  hi,   world ,   aa dd  dw   WWdd a ";


            lblHello.Content = s.GetNormalFormat();
            
        }
    }
}
Ce qui précède est le contenu de l'exemple d'introduction à la méthode d'extension c#. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn