C#拡張メソッド入門例
拡張メソッドの定義:
l は静的クラスである必要があります, 静的メソッド
lの最初のパラメータには、このメソッドがどの型に割り当てられているかを示すキーワード"this"が含まれています
コードの説明: ここでの例は、静的クラス myExtension、 拡張メソッド Add を作成することです。これは、型 INT のすべての数値がこれを呼び出す機能を持つことを意味します Addメソッドでは、MyExtensionの名前空間を導入することが条件となります。
使用法を見てみましょう:
このコードは何ですかdos は型の数値を取得するステートメントです int
として割り当て、Add メソッドを呼び出します。次のように IntelliSense が表示されます。 拡張メソッドがマークされていることがわかります。下向きの矢印が付いています。次に、それを呼び出して、任意の int
を与えます。params キーワードを使用したため、自動的に int 配列に解析され、その後 rlt 変数を使用してそれを表示すると、結果が表示されます:
例 2:
英語を標準化できる文字列を拡張するメソッドを作成しました。たとえば、hEllo WORld に渡されると、Hello World が出力されます 使用: 上記は C# 拡張メソッドの紹介サンプルの内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) を参照してください。 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 == ' ')
{
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);
}
}
}