>  기사  >  백엔드 개발  >  C# 확장 방법 소개 예

C# 확장 방법 소개 예

黄舟
黄舟원래의
2017-03-03 13:35:581284검색

C#확장 방법 시작 예시

확장 방법 정의:

l 은 정적 클래스, 정적 메서드여야 합니다

l 첫 번째 매개변수에는 "this" 키워드가 포함되어 있으며, 이 메소드가 🎜에 할당된

코드 설명: 여기의 예는 정적 클래스 myExtension, 확장 메서드추가를 작성하는 것입니다. , 모든 INT 유형 번호가 Add 메소드를 호출할 수 있음을 나타냅니다. 🎜>내 확장.

사용법을 살펴보겠습니다:

코드 설명: 이 코드의 역할은 int 유형을 선언하고 7에 값을 할당하는 것입니다. 그런 다음 Add 메서드를 호출하면 다음과 같이 IntelliSense가 표시됩니다.

확장 방법이 아래쪽 화살표로 표시된 것을 확인할 수 있습니다. 그런 다음 호출하고 int를 지정하세요. params 키워드를 사용했기 때문에 자동으로 로 구문 분석됩니다. int 배열을 사용하고 rlt 변수를 사용하여 이를 수신하고 표시되면 결과가 표시됩니다:



예시 2:


영어를 표준화할 수 있는 문자열 확장 메서드를 작성했습니다. 예를 들어 Hello World를 전달하면 hElo 및 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);
        }
    }
}

용도:

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

위 내용은 C# 확장 메소드 소개 예제 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.