例子:
using System;
public static class StringExtension
{
public static int StringToInt(this string str)
{
int len = str.Length;
int temp = 0;
for(int i = 0; i < len; i++)
{
temp = temp * 10 + str[i] - '0';
}
return temp;
}
public static bool Check(this string str)
{
return str == "" || str == null ? false : true;
}
}
public static class ObjExtension
{
public static string SafeToString(this object obj)
{
if (obj == null)
return "wrong";
return obj.ToString();
}
}
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string s = "123";
int i = s.StringToInt();
Console.WriteLine(i.ToString());
string s1 = null;
string s2 = "";
string s3 = "321";
Console.WriteLine(s1.Check());
Console.WriteLine(s2.Check());
Console.WriteLine(s3.Check());
Console.WriteLine(s1.SafeToString());
Console.WriteLine(s3.SafeToString());
Console.ReadKey();
}
}
}
上面的代码写了Object和String类型的扩展方法。
几点:
扩展方法必须在静态类中实现。
静态类的名字最好为类型名加"Extension"
扩展方法必须是静态方法。
参数为this 类型 名字