用静态类扩展类的方法

Posted StanGuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用静态类扩展类的方法相关的知识,希望对你有一定的参考价值。

学到静态类,它有一个比较特殊的功能,就是能扩展其他类的方法:

例如:我们定义了要给Person类,但是用过一段时间后发现,这个类的功能不够了,但是又不想从写(或者与别人合作,不能从写),那用静态类来扩展就是一种方法。

Person类    然后我们写了一个静态类  叫做 PersonPlus,在PersonPlus里,写了一个 PersonSaysorry(this Person p)的静态方法,这里要注意,方法的参数这样写:public static void PersonSaysorry(this Person p)

指向我们想要扩展的类名 ,这样 我们用Person的实例就可以调用 PersonSaysorry(this Person p)方法了,和用Person里的方法一样。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace StaticClass
{
  class Program
{
static void Main(string[] args)
{
  Person p = new Person();
  p.PersonSayHello();
  p.PersonSaysorry();
  Console.ReadKey();
}
}

public class Person
{
  private int _age;

  public int Age
  {
    get { return _age; }
  set { _age = value; }
  }

public void PersonSayHello()
{
  Console.WriteLine("Hello ");
}
}

static class PersonPlus
{
  public static void PersonSaysorry(this Person p)
{
  Console.WriteLine("sorry!");
}
}
}

 

以上是关于用静态类扩展类的方法的主要内容,如果未能解决你的问题,请参考以下文章

静态类的扩展方法? [复制]

c# 有调用一个类的静态方法,是不是执行这个类的构造函数

部分类静态类Object类ToString()方法扩展方法的使用

静态类的静态方法与非静态类的静态方法 (C#)

C# 静态类 考考你

一个类中直接调用另一个类的静态方法吗