C# this 可以用来对原有的方法进行扩展namespace SimpleExpressionFuc
{
public class demo {
public int id { get; private set; }
public string name { get; private set; }
public string getxmid() {
return "use getxmid() function ho!\t\n";
}
public Expression exfuc{
get { return new Expression(this); }
}
public class Expression {
public demo d{get;private set;}
public Expression(demo d){
this.d=d;
}
public Expression getxmid()
{
this.d.getxmid();
return this;
}
public Expression getxmname()
{
this.d.getxmname();
return this;
}
}
}
//平级扩展方法
public static class demoExpression {
public static string getxmname(this demo d) {
return " use getxmname fucntion ho!\t\n";
}
public static string getnewxmname(this demo.Expression de) {
return "aaaaaaaaaaaaa";
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine( new demo().getxmname());
Console.WriteLine( new demo().exfuc.getxmid().getxmname().getxmid().getxmname());
new demo().exfuc.getnewxmname();
}
}
}实例如下: