Heim  >  Artikel  >  Backend-Entwicklung  >  Einführungsbeispiel für die C#-Erweiterungsmethode

Einführungsbeispiel für die C#-Erweiterungsmethode

黄舟
黄舟Original
2017-03-03 13:35:581210Durchsuche

C#Erweiterungsmethode Beispiel für den ersten Schritt

Definition der Erweiterungsmethode:

l muss eine statische Klasse, statische Methode sein

l Der erste Parameter enthält das Schlüsselwort "this" und gibt an, welchem ​​Typ

Codebeschreibung: Das Beispiel hier ist das Schreiben einer statischen Klasse, myExtension, einer ErweiterungsmethodeAdd , was darauf hinweist, dass alle INT-Typnummern die Möglichkeit haben, diese Add-Methode aufzurufen, vorausgesetzt, dass MeineErweiterung.

Werfen wir einen Blick auf die Verwendung:

Codebeschreibung: Dieser Code deklariert eine Zahl vom Typ int und weist den Wert 7 zu, und Wenn Sie dann die Methode Add aufrufen, sehen Sie IntelliSense wie folgt:

Sie können sehen, dass die Erweiterungsmethode mit einem Abwärtspfeil markiert ist. Dann rufen Sie es einfach auf und geben Sie ihm ein beliebiges int. Da ich das Schlüsselwort params verwendet habe, wird es automatisch in analysiert int-Array, dann verwenden Sie die Variable rlt, um es zu empfangen, und wenn es angezeigt wird, sehen Sie das Ergebnis:



Beispiel 2:


Eine Methode zum Erweitern von Zeichenfolgen geschrieben, die Englisch standardisieren kann. Beispielsweise werden hEllo und WORld ausgegeben, wenn sie übergeben werden: 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);
        }
    }
}

Verwendung:

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();
            
        }
    }
}

Das Obige ist der Inhalt des Einführungsbeispiels für die C#-Erweiterungsmethode. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn